{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pip install tushare\n",
    "# pip install keras_sequential_ascii"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 1 - Data Preprocessing\n",
    "# Importing the libraries导入需要的库\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import tushare as ts\n",
    "import keras\n",
    "from keras.layers import Dense, LSTM, Dropout, GRU, Bidirectional\n",
    "from keras.callbacks import EarlyStopping, ModelCheckpoint\n",
    "from keras.models import load_model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the seed_num\n",
    "import json\n",
    "import os\n",
    "import random\n",
    "import tensorflow as tf\n",
    "seed_num = 42\n",
    "os.environ['PYTHONHASHSEED']=str(seed_num)\n",
    "random.seed(seed_num)\n",
    "np.random.seed(seed_num)\n",
    "tf.random.set_seed(seed_num)\n",
    "from tensorflow.compat.v1.keras import backend as K\n",
    "session_conf = tf.compat.v1.ConfigProto(intra_op_parallelism_threads=1,\n",
    "                             inter_op_parallelism_threads=1)\n",
    "sess=tf.compat.v1.Session(graph=tf.compat.v1.get_default_graph(),config=session_conf)\n",
    "K.set_session(sess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# early stopping\n",
    "earlystop = EarlyStopping(monitor='val_loss',\n",
    "                          min_delta=0,\n",
    "                          patience=30,\n",
    "                          verbose=2)\n",
    "\n",
    "mc = ModelCheckpoint(filepath='best_model.h5',\n",
    "                     monitor='val_acc',\n",
    "                     mode='max',\n",
    "                     verbose=1,\n",
    "                     save_best_only=True) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 定义回调函数,用来监控训练情况\n",
    "# class LossHistory(keras.callbacks.Callback):\n",
    "#     def on_train_begin(self, logs={}):\n",
    "#         self.losses = {'batch':[], 'epoch':[]}\n",
    "#         self.accuracy = {'batch':[], 'epoch':[]}\n",
    "#         self.val_loss = {'batch':[], 'epoch':[]}\n",
    "#         self.val_acc = {'batch':[], 'epoch':[]}\n",
    "\n",
    "#     def on_batch_end(self, batch, logs={}):\n",
    "#         self.losses['batch'].append(logs.get('loss'))\n",
    "#         self.accuracy['batch'].append(logs.get('acc'))\n",
    "#         self.val_loss['batch'].append(logs.get('val_loss'))\n",
    "#         self.val_acc['batch'].append(logs.get('val_acc'))\n",
    "\n",
    "#     def on_epoch_end(self, batch, logs={}):\n",
    "#         self.losses['epoch'].append(logs.get('loss'))\n",
    "#         self.accuracy['epoch'].append(logs.get('acc'))\n",
    "#         self.val_loss['epoch'].append(logs.get('val_loss'))\n",
    "#         self.val_acc['epoch'].append(logs.get('val_acc'))\n",
    "\n",
    "#     def loss_plot(self, loss_type):\n",
    "#         iters = range(len(self.losses[loss_type]))\n",
    "#         plt.figure()\n",
    "#         # loss\n",
    "#         plt.plot(iters, self.losses[loss_type], 'red', label='Training loss')\n",
    "#         if loss_type == 'epoch':\n",
    "#             # val_loss\n",
    "#             plt.plot(iters, self.val_loss[loss_type], 'blue', label='Validation loss')\n",
    "#         plt.grid(True)\n",
    "#         plt.xlabel(loss_type)\n",
    "#         plt.ylabel('loss')\n",
    "#         plt.legend(loc=\"upper right\")\n",
    "#         plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "本接口即将停止更新，请尽快使用Pro版接口：https://tushare.pro/document/2\n",
      "(3114, 7)\n"
     ]
    }
   ],
   "source": [
    "# Importing the training set读入数据集\n",
    "#下载数据接口介绍https://mp.weixin.qq.com/s/XoyACntxEXX3ZEqvECUbBg\n",
    "data=ts.get_k_data('600000',start='2008-01-01',end='2020-12-31')#通过tushare的接口获取浦发银行的历史数据\n",
    "print(data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         date   open  close   high    low     volume    code\n",
      "0  2008-01-02  8.168  8.293  8.634  7.898  131583.90  600000\n",
      "1  2008-01-03  8.168  7.684  8.293  7.391  211346.56  600000\n",
      "2  2008-01-04  7.702  8.170  8.307  7.491  139249.67  600000\n",
      "3  2008-01-07  8.118  8.848  8.953  8.095  228043.01  600000\n",
      "4  2008-01-08  8.896  8.939  9.121  8.850  161255.31  600000\n",
      "    open  close   high    low     volume\n",
      "0  8.168  8.293  8.634  7.898  131583.90\n",
      "1  8.168  7.684  8.293  7.391  211346.56\n",
      "2  7.702  8.170  8.307  7.491  139249.67\n",
      "3  8.118  8.848  8.953  8.095  228043.01\n",
      "4  8.896  8.939  9.121  8.850  161255.31\n"
     ]
    }
   ],
   "source": [
    "#显示数据集的前几行，查看样式\n",
    "print(data.head())\n",
    "all_data = data.iloc[:, 1:6]\n",
    "print(all_data.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(3114, 5)\n"
     ]
    }
   ],
   "source": [
    "print(all_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.68836846 0.69292567 0.69966508 0.67603854 0.00771713]\n",
      " [0.68836846 0.64542547 0.67310538 0.63599747 0.01439697]\n",
      " [0.65199063 0.68333203 0.67419581 0.64389512 0.00835911]\n",
      " ...\n",
      " [0.76190476 0.75196943 0.73907625 0.76622966 0.033672  ]\n",
      " [0.75644028 0.74962951 0.73284524 0.75991155 0.04266218]\n",
      " [0.75565964 0.76366898 0.74452839 0.76386037 0.05196373]]\n",
      "训练数据长度是: 3114\n"
     ]
    }
   ],
   "source": [
    "# Feature Scaling特征归一化\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "sc = MinMaxScaler(feature_range = (0, 1),)\n",
    "all_data_scaled = sc.fit_transform(all_data)\n",
    "print(all_data_scaled)\n",
    "print('训练数据长度是:',len(all_data_scaled))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "shape of x_train: (2488, 60, 5)\n",
      "shape of x_val: (311, 60, 5)\n",
      "shape of x_test: (255, 60, 5)\n",
      "shape of y_train: (2488,)\n",
      "shape of y_val: (311,)\n",
      "shape of y_test: (255,)\n"
     ]
    }
   ],
   "source": [
    "# Creating a data structure with 60 timesteps and 1 output\n",
    "features = []\n",
    "labels = []\n",
    "for i in range(60, len(all_data_scaled)):\n",
    "    features.append(all_data_scaled[i-60:i, ])\n",
    "    labels.append(all_data_scaled[i, 1])\n",
    "features, labels = np.array(features), np.array(labels)\n",
    "features = np.reshape(features, (features.shape[0], features.shape[1], -1))\n",
    "x_train,x_val,x_test,y_train,y_val,y_test= features[:2488],features[2488 :2799],features[2799:],labels[:2488],labels[2488 :2799],labels[2799:]\n",
    "print('shape of x_train:',x_train.shape)\n",
    "print('shape of x_val:',x_val.shape)\n",
    "print('shape of x_test:',x_test.shape)\n",
    "print('shape of y_train:',y_train.shape)\n",
    "print('shape of y_val:',y_val.shape)\n",
    "print('shape of y_test:',y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 2 - Building the LSTM\n",
    "# Importing the Keras libraries and packages\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense\n",
    "from keras.layers import LSTM\n",
    "from keras.layers import Dropout\n",
    "# Initialising the RNN\n",
    "regressor = Sequential()\n",
    "# Adding the first LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50, return_sequences = True, input_shape = (x_train.shape[1], 5)))\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding a second LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50, return_sequences = True))\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding a third LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50, return_sequences = True))\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding a fourth LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50))\n",
    "regressor.add(Dropout(0.2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "#编译训练模型重点#\n",
    "#编译训练模型重点#\n",
    "#编译训练模型重点#\n",
    "\n",
    "import keras \n",
    "from sklearn.model_selection import train_test_split\n",
    "# Adding the output layer\n",
    "regressor.add(Dense(units = 1))\n",
    "# Compiling the RNN\n",
    "regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "lstm (LSTM)                  (None, 60, 50)            11200     \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "lstm_1 (LSTM)                (None, 60, 50)            20200     \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "lstm_2 (LSTM)                (None, 60, 50)            20200     \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "lstm_3 (LSTM)                (None, 50)                20200     \n",
      "_________________________________________________________________\n",
      "dropout_3 (Dropout)          (None, 50)                0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 1)                 51        \n",
      "=================================================================\n",
      "Total params: 71,851\n",
      "Trainable params: 71,851\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(regressor.summary()) # Summarize Model 模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n",
      "\n",
      "               Input   #####     60    5\n",
      "                LSTM   LLLLL -------------------     11200    15.6%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                LSTM   LLLLL -------------------     20200    28.1%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                LSTM   LLLLL -------------------     20200    28.1%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                LSTM   LLLLL -------------------     20200    28.1%\n",
      "                tanh   #####          50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####          50\n",
      "               Dense   XXXXX -------------------        51     0.1%\n",
      "                       #####           1\n"
     ]
    }
   ],
   "source": [
    "from keras_sequential_ascii import keras2ascii\n",
    "keras2ascii(regressor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('Failed to import pydot. You must `pip install pydot` and install graphviz (https://graphviz.gitlab.io/download/), ', 'for `pydotprint` to work.')\n"
     ]
    }
   ],
   "source": [
    "from keras.utils.vis_utils import plot_model  \n",
    "plot_model(regressor, to_file='model.png', show_shapes=True, show_layer_names=True) # plot my model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/400\n",
      "20/20 [==============================] - 2s 80ms/step - loss: 0.0498 - val_loss: 0.0017\n",
      "Epoch 2/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0080 - val_loss: 0.0016\n",
      "Epoch 3/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0059 - val_loss: 0.0026\n",
      "Epoch 4/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0050 - val_loss: 0.0013\n",
      "Epoch 5/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0049 - val_loss: 0.0012\n",
      "Epoch 6/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0046 - val_loss: 0.0014\n",
      "Epoch 7/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0045 - val_loss: 0.0022\n",
      "Epoch 8/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0047 - val_loss: 0.0014\n",
      "Epoch 9/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0042 - val_loss: 0.0017\n",
      "Epoch 10/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0041 - val_loss: 0.0012\n",
      "Epoch 11/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0045 - val_loss: 0.0020\n",
      "Epoch 12/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0038 - val_loss: 0.0013\n",
      "Epoch 13/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0040 - val_loss: 0.0012\n",
      "Epoch 14/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0038 - val_loss: 0.0020\n",
      "Epoch 15/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0036 - val_loss: 0.0012\n",
      "Epoch 16/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0037 - val_loss: 0.0020\n",
      "Epoch 17/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0040 - val_loss: 0.0026\n",
      "Epoch 18/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0037 - val_loss: 0.0013\n",
      "Epoch 19/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0034 - val_loss: 0.0011\n",
      "Epoch 20/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0034 - val_loss: 0.0011\n",
      "Epoch 21/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0035 - val_loss: 0.0011\n",
      "Epoch 22/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0035 - val_loss: 0.0015\n",
      "Epoch 23/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0036 - val_loss: 0.0014\n",
      "Epoch 24/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0035 - val_loss: 0.0016\n",
      "Epoch 25/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0039 - val_loss: 0.0014\n",
      "Epoch 26/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0034 - val_loss: 0.0014\n",
      "Epoch 27/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0036 - val_loss: 0.0020\n",
      "Epoch 28/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0033 - val_loss: 0.0013\n",
      "Epoch 29/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0031 - val_loss: 9.9035e-04\n",
      "Epoch 30/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0032 - val_loss: 0.0014\n",
      "Epoch 31/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0032 - val_loss: 9.1730e-04\n",
      "Epoch 32/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0032 - val_loss: 9.0321e-04\n",
      "Epoch 33/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0032 - val_loss: 9.3753e-04\n",
      "Epoch 34/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0030 - val_loss: 0.0012\n",
      "Epoch 35/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0032 - val_loss: 8.9879e-04\n",
      "Epoch 36/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0027 - val_loss: 9.6673e-04\n",
      "Epoch 37/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0028 - val_loss: 8.6504e-04\n",
      "Epoch 38/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0028 - val_loss: 0.0010\n",
      "Epoch 39/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0027 - val_loss: 9.3071e-04\n",
      "Epoch 40/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0033 - val_loss: 0.0043\n",
      "Epoch 41/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0035 - val_loss: 0.0019\n",
      "Epoch 42/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0028 - val_loss: 0.0011\n",
      "Epoch 43/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0027 - val_loss: 9.1690e-04\n",
      "Epoch 44/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0028 - val_loss: 7.9830e-04\n",
      "Epoch 45/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 9.6296e-04\n",
      "Epoch 46/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0027 - val_loss: 0.0018\n",
      "Epoch 47/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0024 - val_loss: 8.3974e-04\n",
      "Epoch 48/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0027 - val_loss: 0.0017\n",
      "Epoch 49/400\n",
      "20/20 [==============================] - 0s 15ms/step - loss: 0.0028 - val_loss: 8.2954e-04\n",
      "Epoch 50/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 7.9994e-04\n",
      "Epoch 51/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 9.6801e-04\n",
      "Epoch 52/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0027 - val_loss: 0.0010\n",
      "Epoch 53/400\n",
      "20/20 [==============================] - 0s 15ms/step - loss: 0.0025 - val_loss: 7.2390e-04\n",
      "Epoch 54/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 7.3013e-04\n",
      "Epoch 55/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 0.0016\n",
      "Epoch 56/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0024 - val_loss: 7.4006e-04\n",
      "Epoch 57/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0024 - val_loss: 9.1039e-04\n",
      "Epoch 58/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0023 - val_loss: 0.0013\n",
      "Epoch 59/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0024 - val_loss: 0.0013\n",
      "Epoch 60/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0024 - val_loss: 7.8774e-04\n",
      "Epoch 61/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0022 - val_loss: 8.2512e-04\n",
      "Epoch 62/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 7.2083e-04\n",
      "Epoch 63/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0025 - val_loss: 7.7556e-04\n",
      "Epoch 64/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0022 - val_loss: 0.0010\n",
      "Epoch 65/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0023 - val_loss: 0.0015\n",
      "Epoch 66/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0023 - val_loss: 6.5819e-04\n",
      "Epoch 67/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 7.7868e-04\n",
      "Epoch 68/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0022 - val_loss: 6.8564e-04\n",
      "Epoch 69/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0023 - val_loss: 6.2383e-04\n",
      "Epoch 70/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 0.0011\n",
      "Epoch 71/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 7.1181e-04\n",
      "Epoch 72/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 9.4740e-04\n",
      "Epoch 73/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0023 - val_loss: 6.3071e-04\n",
      "Epoch 74/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 0.0011\n",
      "Epoch 75/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0022 - val_loss: 0.0015\n",
      "Epoch 76/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 7.7786e-04\n",
      "Epoch 77/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0022 - val_loss: 6.3575e-04\n",
      "Epoch 78/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 6.8668e-04\n",
      "Epoch 79/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 7.6055e-04\n",
      "Epoch 80/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0022 - val_loss: 5.7468e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 81/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0020 - val_loss: 7.6173e-04\n",
      "Epoch 82/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 6.5987e-04\n",
      "Epoch 83/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0019 - val_loss: 9.0501e-04\n",
      "Epoch 84/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0020 - val_loss: 5.8499e-04\n",
      "Epoch 85/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0020 - val_loss: 5.6438e-04\n",
      "Epoch 86/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0020 - val_loss: 0.0011\n",
      "Epoch 87/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0019 - val_loss: 9.1379e-04\n",
      "Epoch 88/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 0.0012\n",
      "Epoch 89/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 6.7739e-04\n",
      "Epoch 90/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 5.4210e-04\n",
      "Epoch 91/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 8.2321e-04\n",
      "Epoch 92/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0019 - val_loss: 8.5198e-04\n",
      "Epoch 93/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 5.8019e-04\n",
      "Epoch 94/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0019 - val_loss: 5.3353e-04\n",
      "Epoch 95/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 5.5933e-04\n",
      "Epoch 96/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 0.0020\n",
      "Epoch 97/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0021 - val_loss: 5.0400e-04\n",
      "Epoch 98/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0019 - val_loss: 5.4619e-04\n",
      "Epoch 99/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 9.4323e-04\n",
      "Epoch 100/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 9.0409e-04\n",
      "Epoch 101/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 5.2333e-04\n",
      "Epoch 102/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 0.0013\n",
      "Epoch 103/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 4.8076e-04\n",
      "Epoch 104/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 4.8140e-04\n",
      "Epoch 105/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 5.6388e-04\n",
      "Epoch 106/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 0.0012\n",
      "Epoch 107/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 6.1527e-04\n",
      "Epoch 108/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 4.6473e-04\n",
      "Epoch 109/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 0.0014\n",
      "Epoch 110/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 6.8372e-04\n",
      "Epoch 111/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 5.1501e-04\n",
      "Epoch 112/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 5.0567e-04\n",
      "Epoch 113/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 4.8707e-04\n",
      "Epoch 114/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 4.7090e-04\n",
      "Epoch 115/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 4.3793e-04\n",
      "Epoch 116/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 7.1217e-04\n",
      "Epoch 117/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 6.1726e-04\n",
      "Epoch 118/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 4.5322e-04\n",
      "Epoch 119/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 5.9426e-04\n",
      "Epoch 120/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 7.2065e-04\n",
      "Epoch 121/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 4.2031e-04\n",
      "Epoch 122/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 7.5691e-04\n",
      "Epoch 123/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 5.4059e-04\n",
      "Epoch 124/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 6.5913e-04\n",
      "Epoch 125/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 7.9244e-04\n",
      "Epoch 126/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 5.0587e-04\n",
      "Epoch 127/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 0.0014\n",
      "Epoch 128/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0016 - val_loss: 4.3231e-04\n",
      "Epoch 129/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 4.1108e-04\n",
      "Epoch 130/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 8.8327e-04\n",
      "Epoch 131/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 5.5615e-04\n",
      "Epoch 132/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 4.0442e-04\n",
      "Epoch 133/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 4.9109e-04\n",
      "Epoch 134/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0015 - val_loss: 3.8872e-04\n",
      "Epoch 135/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 7.3292e-04\n",
      "Epoch 136/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 4.3965e-04\n",
      "Epoch 137/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.7204e-04\n",
      "Epoch 138/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 5.7061e-04\n",
      "Epoch 139/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 4.4262e-04\n",
      "Epoch 140/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.8963e-04\n",
      "Epoch 141/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.7406e-04\n",
      "Epoch 142/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 4.6008e-04\n",
      "Epoch 143/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 5.2873e-04\n",
      "Epoch 144/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 5.2671e-04\n",
      "Epoch 145/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.6057e-04\n",
      "Epoch 146/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.9841e-04\n",
      "Epoch 147/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.5782e-04\n",
      "Epoch 148/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.4982e-04\n",
      "Epoch 149/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 4.2851e-04\n",
      "Epoch 150/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 5.8700e-04\n",
      "Epoch 151/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.4201e-04\n",
      "Epoch 152/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 4.5014e-04\n",
      "Epoch 153/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 6.4791e-04\n",
      "Epoch 154/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.6798e-04\n",
      "Epoch 155/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 3.9987e-04\n",
      "Epoch 156/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 6.2983e-04\n",
      "Epoch 157/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 8.8755e-04\n",
      "Epoch 158/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0014 - val_loss: 4.7632e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 159/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 4.3859e-04\n",
      "Epoch 160/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 4.0214e-04\n",
      "Epoch 161/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 5.5682e-04\n",
      "Epoch 162/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.1296e-04\n",
      "Epoch 163/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.6404e-04\n",
      "Epoch 164/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 4.2370e-04\n",
      "Epoch 165/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 4.4397e-04\n",
      "Epoch 166/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 5.0449e-04\n",
      "Epoch 167/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.3267e-04\n",
      "Epoch 168/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.3307e-04\n",
      "Epoch 169/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 2.9934e-04\n",
      "Epoch 170/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 3.2688e-04\n",
      "Epoch 171/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 3.2499e-04\n",
      "Epoch 172/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 0.0011\n",
      "Epoch 173/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 4.7752e-04\n",
      "Epoch 174/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.5352e-04\n",
      "Epoch 175/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.2307e-04\n",
      "Epoch 176/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 7.5298e-04\n",
      "Epoch 177/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 5.0862e-04\n",
      "Epoch 178/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.0754e-04\n",
      "Epoch 179/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 2.9432e-04\n",
      "Epoch 180/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.7013e-04 - val_loss: 2.9023e-04\n",
      "Epoch 181/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 3.8082e-04\n",
      "Epoch 182/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.6184e-04 - val_loss: 3.2507e-04\n",
      "Epoch 183/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.5802e-04\n",
      "Epoch 184/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.9426e-04 - val_loss: 4.3280e-04\n",
      "Epoch 185/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 3.3155e-04\n",
      "Epoch 186/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.4643e-04\n",
      "Epoch 187/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.9068e-04 - val_loss: 0.0010\n",
      "Epoch 188/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 4.4189e-04\n",
      "Epoch 189/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 2.8728e-04\n",
      "Epoch 190/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.3751e-04 - val_loss: 3.4436e-04\n",
      "Epoch 191/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 4.0069e-04\n",
      "Epoch 192/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 4.4974e-04\n",
      "Epoch 193/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.9719e-04 - val_loss: 3.0467e-04\n",
      "Epoch 194/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.5524e-04 - val_loss: 5.0100e-04\n",
      "Epoch 195/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 6.3482e-04\n",
      "Epoch 196/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 0.0012\n",
      "Epoch 197/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 4.0110e-04\n",
      "Epoch 198/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 2.7010e-04\n",
      "Epoch 199/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.0274e-04 - val_loss: 2.6792e-04\n",
      "Epoch 200/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.2981e-04 - val_loss: 3.1150e-04\n",
      "Epoch 201/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.8492e-04 - val_loss: 2.7920e-04\n",
      "Epoch 202/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.6205e-04 - val_loss: 2.6701e-04\n",
      "Epoch 203/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.7636e-04 - val_loss: 5.1330e-04\n",
      "Epoch 204/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.5855e-04 - val_loss: 5.9685e-04\n",
      "Epoch 205/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.1769e-04 - val_loss: 3.3408e-04\n",
      "Epoch 206/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.6336e-04 - val_loss: 2.6314e-04\n",
      "Epoch 207/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.0066e-04 - val_loss: 5.1167e-04\n",
      "Epoch 208/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.4313e-04 - val_loss: 4.6766e-04\n",
      "Epoch 209/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.3091e-04 - val_loss: 4.0962e-04\n",
      "Epoch 210/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.8131e-04 - val_loss: 2.5592e-04\n",
      "Epoch 211/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 2.6288e-04\n",
      "Epoch 212/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.6232e-04 - val_loss: 5.3894e-04\n",
      "Epoch 213/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 2.6830e-04\n",
      "Epoch 214/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.3109e-04 - val_loss: 3.9617e-04\n",
      "Epoch 215/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 2.6134e-04\n",
      "Epoch 216/400\n",
      "20/20 [==============================] - 0s 15ms/step - loss: 0.0011 - val_loss: 0.0011\n",
      "Epoch 217/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.2720e-04 - val_loss: 2.5912e-04\n",
      "Epoch 218/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.3398e-04 - val_loss: 5.9984e-04\n",
      "Epoch 219/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.5944e-04 - val_loss: 3.8267e-04\n",
      "Epoch 220/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 2.7912e-04\n",
      "Epoch 221/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.0154e-04 - val_loss: 3.5885e-04\n",
      "Epoch 222/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.2626e-04 - val_loss: 2.9120e-04\n",
      "Epoch 223/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.4171e-04 - val_loss: 2.5024e-04\n",
      "Epoch 224/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.5003e-04 - val_loss: 7.0314e-04\n",
      "Epoch 225/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.5661e-04 - val_loss: 4.1581e-04\n",
      "Epoch 226/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.3297e-04 - val_loss: 3.3935e-04\n",
      "Epoch 227/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.8208e-04 - val_loss: 2.6123e-04\n",
      "Epoch 228/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2131e-04 - val_loss: 2.7894e-04\n",
      "Epoch 229/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.8927e-04 - val_loss: 2.8566e-04\n",
      "Epoch 230/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.5640e-04 - val_loss: 2.5210e-04\n",
      "Epoch 231/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.0861e-04 - val_loss: 5.7267e-04\n",
      "Epoch 232/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.7113e-04 - val_loss: 2.7973e-04\n",
      "Epoch 233/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.8809e-04 - val_loss: 2.7906e-04\n",
      "Epoch 234/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.5665e-04 - val_loss: 3.7733e-04\n",
      "Epoch 235/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2932e-04 - val_loss: 5.7988e-04\n",
      "Epoch 236/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.9108e-04 - val_loss: 2.9911e-04\n",
      "Epoch 237/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.4127e-04 - val_loss: 4.7768e-04\n",
      "Epoch 238/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.6137e-04 - val_loss: 5.4261e-04\n",
      "Epoch 239/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.9082e-04 - val_loss: 4.2812e-04\n",
      "Epoch 240/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.1110e-04 - val_loss: 6.1111e-04\n",
      "Epoch 241/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.2453e-04 - val_loss: 2.4280e-04\n",
      "Epoch 242/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.7270e-04 - val_loss: 6.8595e-04\n",
      "Epoch 243/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.5024e-04 - val_loss: 3.6985e-04\n",
      "Epoch 244/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.7649e-04 - val_loss: 2.4656e-04\n",
      "Epoch 245/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.5052e-04 - val_loss: 2.5402e-04\n",
      "Epoch 246/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2121e-04 - val_loss: 2.6696e-04\n",
      "Epoch 247/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7259e-04 - val_loss: 2.4052e-04\n",
      "Epoch 248/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.6539e-04 - val_loss: 3.9309e-04\n",
      "Epoch 249/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0010 - val_loss: 6.5683e-04\n",
      "Epoch 250/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.0187e-04 - val_loss: 5.6838e-04\n",
      "Epoch 251/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.8658e-04 - val_loss: 2.9893e-04\n",
      "Epoch 252/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.1670e-04 - val_loss: 3.7534e-04\n",
      "Epoch 253/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.1845e-04 - val_loss: 2.5514e-04\n",
      "Epoch 254/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5554e-04 - val_loss: 2.5291e-04\n",
      "Epoch 255/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2375e-04 - val_loss: 3.3593e-04\n",
      "Epoch 256/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.5173e-04 - val_loss: 2.4023e-04\n",
      "Epoch 257/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0169e-04 - val_loss: 2.4426e-04\n",
      "Epoch 258/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1817e-04 - val_loss: 3.0551e-04\n",
      "Epoch 259/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1547e-04 - val_loss: 2.4402e-04\n",
      "Epoch 260/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7090e-04 - val_loss: 2.5252e-04\n",
      "Epoch 261/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1216e-04 - val_loss: 3.6354e-04\n",
      "Epoch 262/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.6376e-04 - val_loss: 3.3967e-04\n",
      "Epoch 263/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1772e-04 - val_loss: 3.1526e-04\n",
      "Epoch 264/400\n",
      "20/20 [==============================] - 0s 17ms/step - loss: 8.5648e-04 - val_loss: 3.1205e-04\n",
      "Epoch 265/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2327e-04 - val_loss: 2.9563e-04\n",
      "Epoch 266/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1340e-04 - val_loss: 3.1504e-04\n",
      "Epoch 267/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0204e-04 - val_loss: 6.1096e-04\n",
      "Epoch 268/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2043e-04 - val_loss: 2.3062e-04\n",
      "Epoch 269/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0185e-04 - val_loss: 2.3171e-04\n",
      "Epoch 270/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.9679e-04 - val_loss: 2.3095e-04\n",
      "Epoch 271/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9880e-04 - val_loss: 3.6285e-04\n",
      "Epoch 272/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0456e-04 - val_loss: 2.2623e-04\n",
      "Epoch 273/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5755e-04 - val_loss: 2.3925e-04\n",
      "Epoch 274/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1308e-04 - val_loss: 4.1414e-04\n",
      "Epoch 275/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7851e-04 - val_loss: 2.5710e-04\n",
      "Epoch 276/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8110e-04 - val_loss: 4.8498e-04\n",
      "Epoch 277/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0777e-04 - val_loss: 4.0339e-04\n",
      "Epoch 278/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8872e-04 - val_loss: 3.5901e-04\n",
      "Epoch 279/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0115e-04 - val_loss: 2.8967e-04\n",
      "Epoch 280/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8395e-04 - val_loss: 3.2821e-04\n",
      "Epoch 281/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5368e-04 - val_loss: 2.4921e-04\n",
      "Epoch 282/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6760e-04 - val_loss: 2.2737e-04\n",
      "Epoch 283/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0357e-04 - val_loss: 2.6714e-04\n",
      "Epoch 284/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0994e-04 - val_loss: 3.5967e-04\n",
      "Epoch 285/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9584e-04 - val_loss: 2.9867e-04\n",
      "Epoch 286/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8548e-04 - val_loss: 3.0588e-04\n",
      "Epoch 287/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7367e-04 - val_loss: 3.2180e-04\n",
      "Epoch 288/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.4698e-04 - val_loss: 3.9117e-04\n",
      "Epoch 289/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.3886e-04 - val_loss: 4.0303e-04\n",
      "Epoch 290/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 9.1773e-04 - val_loss: 2.2721e-04\n",
      "Epoch 291/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2361e-04 - val_loss: 5.6372e-04\n",
      "Epoch 292/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1734e-04 - val_loss: 2.3294e-04\n",
      "Epoch 293/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.4460e-04 - val_loss: 2.4535e-04\n",
      "Epoch 294/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7382e-04 - val_loss: 3.2266e-04\n",
      "Epoch 295/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9850e-04 - val_loss: 2.6554e-04\n",
      "Epoch 296/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0195e-04 - val_loss: 2.3323e-04\n",
      "Epoch 297/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6127e-04 - val_loss: 4.7682e-04\n",
      "Epoch 298/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6943e-04 - val_loss: 2.2266e-04\n",
      "Epoch 299/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5322e-04 - val_loss: 3.5310e-04\n",
      "Epoch 300/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9797e-04 - val_loss: 3.1603e-04\n",
      "Epoch 301/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2826e-04 - val_loss: 2.2744e-04\n",
      "Epoch 302/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2316e-04 - val_loss: 4.1218e-04\n",
      "Epoch 303/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.4684e-04 - val_loss: 2.5923e-04\n",
      "Epoch 304/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7891e-04 - val_loss: 3.0224e-04\n",
      "Epoch 305/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2221e-04 - val_loss: 3.4209e-04\n",
      "Epoch 306/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0912e-04 - val_loss: 2.2529e-04\n",
      "Epoch 307/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3430e-04 - val_loss: 4.0989e-04\n",
      "Epoch 308/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8711e-04 - val_loss: 2.2267e-04\n",
      "Epoch 309/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3906e-04 - val_loss: 2.8349e-04\n",
      "Epoch 310/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6358e-04 - val_loss: 2.2227e-04\n",
      "Epoch 311/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6356e-04 - val_loss: 3.5425e-04\n",
      "Epoch 312/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5479e-04 - val_loss: 2.2419e-04\n",
      "Epoch 313/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1953e-04 - val_loss: 3.7852e-04\n",
      "Epoch 314/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.3350e-04 - val_loss: 2.1582e-04\n",
      "Epoch 315/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0575e-04 - val_loss: 6.2280e-04\n",
      "Epoch 316/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0513e-04 - val_loss: 2.1297e-04\n",
      "Epoch 317/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6189e-04 - val_loss: 2.1342e-04\n",
      "Epoch 318/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4437e-04 - val_loss: 2.4017e-04\n",
      "Epoch 319/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0753e-04 - val_loss: 2.5901e-04\n",
      "Epoch 320/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.6033e-04 - val_loss: 4.1350e-04\n",
      "Epoch 321/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8655e-04 - val_loss: 2.3594e-04\n",
      "Epoch 322/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1375e-04 - val_loss: 2.4043e-04\n",
      "Epoch 323/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5338e-04 - val_loss: 4.0020e-04\n",
      "Epoch 324/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9073e-04 - val_loss: 2.1728e-04\n",
      "Epoch 325/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7489e-04 - val_loss: 2.0769e-04\n",
      "Epoch 326/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9747e-04 - val_loss: 2.1468e-04\n",
      "Epoch 327/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8768e-04 - val_loss: 2.3661e-04\n",
      "Epoch 328/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5928e-04 - val_loss: 2.9438e-04\n",
      "Epoch 329/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6882e-04 - val_loss: 5.1943e-04\n",
      "Epoch 330/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8666e-04 - val_loss: 3.0620e-04\n",
      "Epoch 331/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7741e-04 - val_loss: 2.2693e-04\n",
      "Epoch 332/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1018e-04 - val_loss: 2.2228e-04\n",
      "Epoch 333/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6358e-04 - val_loss: 2.3717e-04\n",
      "Epoch 334/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5823e-04 - val_loss: 4.7627e-04\n",
      "Epoch 335/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5020e-04 - val_loss: 2.1057e-04\n",
      "Epoch 336/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5006e-04 - val_loss: 2.3354e-04\n",
      "Epoch 337/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3569e-04 - val_loss: 2.2885e-04\n",
      "Epoch 338/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5725e-04 - val_loss: 2.0058e-04\n",
      "Epoch 339/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.0506e-04 - val_loss: 2.0191e-04\n",
      "Epoch 340/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6104e-04 - val_loss: 2.9158e-04\n",
      "Epoch 341/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4299e-04 - val_loss: 1.9954e-04\n",
      "Epoch 342/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3901e-04 - val_loss: 2.4424e-04\n",
      "Epoch 343/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.2802e-04 - val_loss: 2.0624e-04\n",
      "Epoch 344/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5201e-04 - val_loss: 4.5948e-04\n",
      "Epoch 345/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4168e-04 - val_loss: 2.1257e-04\n",
      "Epoch 346/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4856e-04 - val_loss: 2.0228e-04\n",
      "Epoch 347/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1312e-04 - val_loss: 1.9858e-04\n",
      "Epoch 348/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3790e-04 - val_loss: 2.0320e-04\n",
      "Epoch 349/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4271e-04 - val_loss: 2.4621e-04\n",
      "Epoch 350/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6985e-04 - val_loss: 3.4499e-04\n",
      "Epoch 351/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1043e-04 - val_loss: 2.0000e-04\n",
      "Epoch 352/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3834e-04 - val_loss: 2.0138e-04\n",
      "Epoch 353/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1505e-04 - val_loss: 2.3599e-04\n",
      "Epoch 354/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4964e-04 - val_loss: 1.9748e-04\n",
      "Epoch 355/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3161e-04 - val_loss: 2.0452e-04\n",
      "Epoch 356/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8071e-04 - val_loss: 7.8948e-04\n",
      "Epoch 357/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3628e-04 - val_loss: 1.9811e-04\n",
      "Epoch 358/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.2971e-04 - val_loss: 1.9738e-04\n",
      "Epoch 359/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3530e-04 - val_loss: 3.9420e-04\n",
      "Epoch 360/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.0089e-04 - val_loss: 2.1009e-04\n",
      "Epoch 361/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3831e-04 - val_loss: 2.8163e-04\n",
      "Epoch 362/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7624e-04 - val_loss: 2.1921e-04\n",
      "Epoch 363/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9865e-04 - val_loss: 5.3411e-04\n",
      "Epoch 364/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7385e-04 - val_loss: 2.0975e-04\n",
      "Epoch 365/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4041e-04 - val_loss: 2.6901e-04\n",
      "Epoch 366/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.8760e-04 - val_loss: 3.0621e-04\n",
      "Epoch 367/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7986e-04 - val_loss: 2.5042e-04\n",
      "Epoch 368/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8909e-04 - val_loss: 2.2760e-04\n",
      "Epoch 369/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3228e-04 - val_loss: 2.0271e-04\n",
      "Epoch 370/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.0668e-04 - val_loss: 1.9081e-04\n",
      "Epoch 371/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5520e-04 - val_loss: 2.3332e-04\n",
      "Epoch 372/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1734e-04 - val_loss: 2.4795e-04\n",
      "Epoch 373/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.9156e-04 - val_loss: 2.0080e-04\n",
      "Epoch 374/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7985e-04 - val_loss: 2.0528e-04\n",
      "Epoch 375/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5969e-04 - val_loss: 2.4631e-04\n",
      "Epoch 376/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2468e-04 - val_loss: 3.2179e-04\n",
      "Epoch 377/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.2283e-04 - val_loss: 2.1227e-04\n",
      "Epoch 378/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.0640e-04 - val_loss: 2.4026e-04\n",
      "Epoch 379/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3596e-04 - val_loss: 3.5019e-04\n",
      "Epoch 380/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1553e-04 - val_loss: 2.4330e-04\n",
      "Epoch 381/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.1761e-04 - val_loss: 2.1290e-04\n",
      "Epoch 382/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.9285e-04 - val_loss: 2.4945e-04\n",
      "Epoch 383/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1404e-04 - val_loss: 1.9494e-04\n",
      "Epoch 384/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6594e-04 - val_loss: 1.9605e-04\n",
      "Epoch 385/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5950e-04 - val_loss: 2.5344e-04\n",
      "Epoch 386/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3235e-04 - val_loss: 2.5819e-04\n",
      "Epoch 387/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.2863e-04 - val_loss: 1.9071e-04\n",
      "Epoch 388/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.9089e-04 - val_loss: 2.1492e-04\n",
      "Epoch 389/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.2508e-04 - val_loss: 2.5926e-04\n",
      "Epoch 390/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5597e-04 - val_loss: 3.4475e-04\n",
      "Epoch 391/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3709e-04 - val_loss: 3.2904e-04\n",
      "Epoch 392/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3024e-04 - val_loss: 2.0492e-04\n",
      "Epoch 393/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.9727e-04 - val_loss: 1.9991e-04\n",
      "Epoch 394/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1622e-04 - val_loss: 2.0202e-04\n",
      "Epoch 395/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.0351e-04 - val_loss: 4.1832e-04\n",
      "Epoch 396/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6143e-04 - val_loss: 2.1915e-04\n",
      "Epoch 397/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.5013e-04 - val_loss: 1.9910e-04\n",
      "Epoch 398/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3070e-04 - val_loss: 2.3332e-04\n",
      "Epoch 399/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.9732e-04 - val_loss: 2.2758e-04\n",
      "Epoch 400/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1470e-04 - val_loss: 2.1595e-04\n"
     ]
    }
   ],
   "source": [
    "history=regressor.fit(x_train, y_train, epochs =400,batch_size = 128,validation_data=(x_val, y_val),callbacks=[mc, earlystop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEWCAYAAAB8LwAVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA11UlEQVR4nO3deXwV1fnH8c9DEgj7TkRAFgsiKoRVFJdIqQou4Fblp+BWt6qtWq1rlV9bf120bq1K3UVtcauKirWiBFCrKIgoq4CgkU2RJWFPeH5/nMk+iUngJgG+79frvu6d/Zm5yX3mnDNzxtwdERGRkurUdAAiIlI7KUGIiEgsJQgREYmlBCEiIrGUIEREJJYShIiIxFKCEBGRWEoQUuuZ2VIzG1LGtJvM7EszyzGzLDN7Nho/JxqXY2Z5ZralyPBNZnaembmZ3VVifSOi8U+Usb0MM8va5TspUgspQchuy8zOBUYBQ9y9EdAPeBvA3Q9y90bR+GnAFfnD7v5/0SoWA2eaWXKR1Y4GFlbfXlSvEvsqUi4lCNmd9QfedPfFAO6+0t0fqsTyK4HPgOMAzKwFcDgwoSrBmNmBZpZpZuuiEszJRaYNM7O5ZpZtZt+Y2bXR+FZm9lq0zPdmNs3MYv8vzewgM3srmm+Vmd0UjX/CzH5fZL5ipZyoBHa9mc0GNprZLWb2Qol132tm90Wfm5rZo2a2Ior192aWVJVjIrs3JQjZnX0AjDaz68ysXxV/xMYRSg0AZwGvAFsruxIzSwFeBf4DtAGuBJ4xswOiWR4FLnH3xsDBwDvR+F8BWUBrIA24CSjV/42ZNQYmAf8G9gV+RFRaqqCRwAlAM+ApYJiZNYnWnQT8FPhHNO+TQG60jd7AscDPKrEt2UMoQchuy92fJvwQHwdMAVab2Q2VXM1LQIaZNSUkinFVDGcg0Aj4o7tvc/d3gNcIP8wA24EeZtbE3de6+8wi49sCHd19u7tP8/gO0k4EVrr7X9x9i7tnu/uHlYjvPnf/2t03u/syYCYwIpo2GNjk7h+YWRowFLjK3Te6+2rgbkLylL2MEoTs1tz9GXcfQjgzvhT4rZkdV4nlNwOvA7cArdz9vSqGsi/wtbvvKDJuGdAu+nwaMAxYZmZTzOywaPwdwCLgP2a2pJwE14HQZlJVX5cY/geFyet/KCw9dARSgBVRtdc64O+EUpHsZZQgZI8QnX0/D8wmVOFUxjhCVc9TOxHCcqBDifaD/YBvovg+cvfhhB/al4HnovHZ7v4rd+8CnARcY2Y/jln/18D+ZWx7I9CgyPA+MfOULJU8Tyg5tQdOoTBBfE2oYmvl7s2iVxN3P6iMbcseTAlCdhcpZpZa5JUcXap6gpk1NrM6ZjYUOAioTNULhOqpnwB/regCJWJJBaYTfqh/bWYpZpZB+MEfb2Z1zexsM2vq7tuBDUBetJ4TzexHZmZFxufFbPI1YB8zu8rM6kX7fGg0bRahTaGFme0DXPVD8bv7t0Am8DjwpbvPi8avILSj/MXMmkTHdX8zO7qix0b2HEoQsruYCGwu8hpD+EG9CfgKWAf8GbjM3d+tzIo9eNvdv6/gIu1KxLKZUAV0MqH+/jvgAWC0u8+PlhkFLDWzDYSqsHOi8V0Jjc85wH+BB9w9MybGbEISO4lw9dUXwDHR5KeAT4GlhB/3Zyu4H/8AhlBYesg3GqgLzAXWAi8Q2klkL2N6YJCIiMRRCUJERGIpQYiISCwlCBERiaUEISIisfaojrtatWrlnTp1qvRyGzdupGHDhrs+oJ2kuCqntsYFtTc2xVU5e2JcM2bM+M7dW8dOdPc95tW3b1+vismTJ1dpuURTXJVTW+Nyr72xKa7K2RPjAj72Mn5TVcUkIiKxlCBERCSWEoSIiMTaoxqpRaR6bd++naysLLZs2bJL19u0aVPmzZu3S9e5K+zOcaWmptK+fXtSUlIqvN6EJggzOx64F0gCHnH3P5aYbtH0YcAm4DyP+sk3s6VANqHjslx375fIWEWk8rKysmjcuDGdOnUi/DvvGtnZ2TRu3HiXrW9X2V3jcnfWrFlDVlYWnTt3rvB6E1bFFD2l6n5C52U9gJFm1qPEbEMJnZV1BS4GHiwx/Rh3T1dyEKmdtmzZQsuWLXdpcpBdz8xo2bJlpUt6iWyDGAAscvcl7r4NGA8MLzHPcGBcdLXVB0AzM1OvkSK7ESWH3UNVvqdEVjG1o/hTrLKAQyswTztgBeEBJ/8xMwf+7mU8jN7MLiaUPkhLSyMzM7PSgbZ95BE+nT6dtQMGVHrZRMrJyanS/iSa4qq82hrbzsbVtGlTsrOzd11Akby8vISsd2ft7nFt2bKlct93WTdI7OwLOIPQ7pA/PAr4a4l5XgeOKDL8NtA3+rxv9N6G0Nf9UT+0zareKJdbr577tddWadlE2hNvykmk2hqXe+2NbWfjmjt37q4JpIQNGzZUaL7vvvvOe/Xq5b169fK0tDTfd999C4a3bt1a7rIfffSRX3nllT+4jcMOO6zSccWZPHmyn3DCCVVevjwVjSvu+6KcG+USWYLIIjxEJV97wmMZKzSPu+e/rzazlwhVVlMTEqkZ6LkYIrudli1bMmvWLADGjBlDo0aNuPbaawum5+bmkpwc/zPXr18/+vX74ebN999/f5fEujtKZBvER0BXM+tsZnWBs4AJJeaZAIy2YCCw3t1XmFlDM2sMYGYNgWOBzxMVqCtBiOwxzjvvPK655hqOOeYYrr/+eqZPn87hhx9O7969Ofzww1mwYAEAmZmZnHjiiUBILhdccAEZGRl06dKF++67r2B9jRo1Kph/2LBhnH766XTv3p2zzz47v+aDiRMn0r17d4444gh+8YtfFKy3LN9//z0jRoygZ8+eDBw4kNmzZwMwZcoU0tPTSU9Pp3fv3mRnZ7NixQqOOuoo0tPTOfjgg5k2bdouP2ZlSVgJwt1zzewK4E3CZa6PufscM7s0mj6W8BjJYcAiwmWu50eLpwEvRY0qycA/3P3fiYoVM9ixI2GrF9krXHUVRGfzO6t+Xh4kJUF6OtxzT6WXX7hwIZMmTSIpKYkNGzYwdepUkpOTmTRpEjfddBMvvvhiqWXmz5/P5MmTyc7O5oADDuCyyy4rdc/A7NmzmTNnDvvuuy+DBg3ivffeo1+/flxyySVMnTqVzp07M3LkyB+M77bbbqN37968/PLLvPPOO4wePZpZs2Zx5513cv/99zNo0CBycnJITU3loYce4rjjjuPmm28mLy+PTZs2Vfp4VFVC74Nw94mEJFB03Nginx24PGa5JUCvRMZWjEoQInuUM844g6SkJADWr1/PueeeyxdffIGZsX379thlTjjhBOrVq0e9evVo06YNq1aton379sXm6du3b8G49PR0li5dSqNGjejSpUvB/QUjR47koYdir6kp8O677xYkqcGDB7NmzRrWr1/PoEGDuOaaazj77LM59dRTad++Pf379+eCCy5g+/btjBgxgvT09J05NJWiO6nzKUGI7JwqnOmXZfNO3pBWtOvr3/zmNxxzzDG89NJLLF26lIyMjNhl6tWrV/A5KSmJ3NzcUvPUrVu31Dxehd+OuGXMjBtuuIETTjiBiRMnMnDgQCZNmsRRRx3F1KlTef311xk1ahTXXXcdo0ePrvQ2q0J9MaE2CJE92fr162nXrh0ATzzxxC5ff/fu3VmyZAlLly4F4Nlnn/3BZY466iieeeYZILRttGrViiZNmrB48WIOOeQQrr/+evr168f8+fNZtmwZbdq04aKLLuLCCy9k5syZu3wfyqISBKiKSWQP9utf/5pzzz2Xu+66i8GDB+/y9devX58HHniA448/nlatWjGgAvdTjRkzhvPPP5+ePXvSoEEDnnzySQDuueceJk+eTFJSEj169GDo0KGMHz+eO+64g5SUFBo1asS4ceN2+T6UqazrX3fHV1Xvg9jWpIn75ZdXadlE2lOvnU+U2hqXe+2NbXe/D6K6lRVXdna2u7vv2LHDL7vsMr/rrruqM6yE3QehKiaiKiZdxSQiVfTwww+Tnp7OQQcdxPr167nkkktqOqRdQlVMoComEdkpV199NVdffXVNh7HLqQQBShAiIjGUIPIpQYiIFKMEgS5zFRGJowQBUKeOGqlFREpQgsinEoTIbicjI4M333yz2Lh77rmHn//85+Uu8/HHHwMwbNgw1q1bV2qeMWPGcOedd5a77Zdffpm5c+cWDN96661MmjSpEtHHK9qJYE1TgkBVTCK7q5EjRzJ+/Phi48aPH1+hDvMg9MLarFmzKm27ZIL47W9/y5AhQ6q0rtpKCQJ0FZPIbur000/ntddeY+vWrQAsXbqU5cuXc8QRR3DZZZfRr18/DjroIG677bbY5Tt16sR3330HwO23384BBxzAkCFDCroEh3CPQ//+/enVqxfnnHMOmzZt4v3332fChAlcd911pKens3jxYs477zxeeOEFAN5++2169+7NIYccwgUXXFAQX6dOnbjtttvo06cPhxxyCPPnzy93/2q6W3DdBwFKECK7wC7s7Zu8vPoV6u27ZcuWDBgwgH//+98MHz6c8ePHc+aZZ2Jm3H777bRo0YK8vDx+/OMfM3v2bHr27Bm7nhkzZjB+/Hg++eQTcnNz6dOnD3379gXg1FNP5aKLLgLguuuu49FHH+XKK6/k5JNP5sQTT+T0008vtq4tW7Zw3nnn8fbbb9OtWzdGjx7Ngw8+yFVXXQVAq1atmDlzJg888AB33nknjzzySJn7V9Fuwbdv385jjz22y7sFVwkCVTGJ7M6KVjMVrV567rnn6NOnD71792bOnDnFqoNKmjZtGqeccgoNGjSgSZMmnHzyyQXTPv/8c4488kgOOeQQnn/+eebMmVNuPAsWLKBz585069YNgHPPPZepUwsfhnnqqacCoevw/A7+yvLuu+8yatQoIL5b8Pvuu49169aRnJxM//79efzxxxkzZgyfffbZTvWGm08lCNADg0R2gV3Y2zfZ2Zsr/AM3YsQIrrnmGmbOnMnmzZvp06cPX375JXfeeScfffQRzZs357zzzmPLli3lrid6QFkp5513Hi+//DK9evVi7NixfPDBB+Wux3/gZDO/W/GyuhT/oXXFdQv+yiuvJKRbcJUgQFVMIruxRo0akZGRwQUXXFBQetiwYQMNGzakadOmrFq1ijfeeKPcdRx11FG89NJLbN68mezsbF599dWCadnZ2bRt25bt27fz3HPPFYxv3Lgx2dnZpdbVvXt3li5dyqJFiwB46qmnOProo6u0bxXtFnzhwoUJ6RZcJYh8ShAiu62RI0dy6qmnFlQ19erVi969e3PQQQfRpUsXBg0aVO7yffr04cwzzyQ9PZ2OHTty5JFHFkz73e9+x6GHHkrHjh054IADChqczzrrLC666CLuu+++gsZpgNTUVB5//HHOOOMMcnNz6d+/P5deemmV9qui3YL/5Cc/4fXXX9/13YKX1c3r7viqanffG9u1cx85skrLJtKe2kV0otTWuNxrb2zq7rtydve41N13VaiKSUSkFCUIUIIQEYmhBIEeGCSyM1wnV7uFqnxPShCgEoRIFaWmprJmzRoliVrO3VmzZg2pqamVWk5XMeXTH7hIpbVv356srCy+/fbbXbreLVu2VPrHrDrsznGlpqbSvn37Sq1XCQJUghCpopSUFDp37rzL15uZmUnv3r13+Xp31t4Wl6qYUFcbIiJxlCBAJQgRkRhKEKC+mEREYihBoComEZE4ShCgKiYRkRhKEPmUIEREiklogjCz481sgZktMrMbYqabmd0XTZ9tZn1KTE8ys0/M7LVExqkShIhIaQlLEGaWBNwPDAV6ACPNrEeJ2YYCXaPXxcCDJab/EpiXqBjzeZ06ShAiIiUksgQxAFjk7kvcfRswHhheYp7hwLio19kPgGZm1hbAzNoDJwBlP7B1V9JVTCIixSTyTup2wNdFhrOAQyswTztgBXAP8Gug3OcOmtnFhNIHaWlpZGZmVjrQXu58v2YNs6uwbCLl5ORUaX8STXFVXm2NTXFVzt4WVyITRNwDXkvW48TOY2YnAqvdfYaZZZS3EXd/CHgIoF+/fp6RUe7ssdYnJdG0eXOqsmwiZWZm1rqYQHFVRW2NTXFVzt4WVyKrmLKADkWG2wPLKzjPIOBkM1tKqJoabGZPJyxSNVKLiJSSyATxEdDVzDqbWV3gLGBCiXkmAKOjq5kGAuvdfYW73+ju7d29U7TcO+5+TgJjVYIQESkhYVVM7p5rZlcAbwJJwGPuPsfMLo2mjwUmAsOARcAm4PxExVNurHXqqJFaRKSEhHb37e4TCUmg6LixRT47cPkPrCMTyExAeIVUxSQiUorupM6nBCEiUowSBKgEISISQwkC9eYqIhJHCQJUghARiaEEAXpgkIhIDCUIVMUkIhJHCQJUxSQiEkMJIp8ShIhIMUoQoBKEiEgMJQj0wCARkThKEPl0FZOISDFKEKAqJhGRGEoQ6DJXEZE4ShCgEoSISAwliHxKECIixShBoKuYRETiKEGA+mISEYmhBJFPJQgRkWKUIECN1CIiMZQg0GWuIiJxlCDyKUGIiBSjBAGgq5hEREpRgiCqYtJVTCIixShB5FMJQkSkGCUI0FVMIiIxlCBACUJEJIYSBLrMVUQkjhIEqKsNEZEYShCgKiYRkRhKEKiKSUQkjhJEPiUIEZFiEpogzOx4M1tgZovM7IaY6WZm90XTZ5tZn2h8qplNN7NPzWyOmf1vIuNUFZOISGkJSxBmlgTcDwwFegAjzaxHidmGAl2j18XAg9H4rcBgd+8FpAPHm9nARMWqBwaJiJSWyBLEAGCRuy9x923AeGB4iXmGA+M8+ABoZmZto+GcaJ6U6JXYX3BdxSQiUkxyAtfdDvi6yHAWcGgF5mkHrIhKIDOAHwH3u/uHcRsxs4sJpQ/S0tLIzMysdKCdc3PZtnUr71dh2UTKycmp0v4kmuKqvNoam+KqnL0uLndPyAs4A3ikyPAo4K8l5nkdOKLI8NtA3xLzNAMmAwf/0Db79u3rVfHNSSe5t2lTpWUTafLkyTUdQizFVXm1NTbFVTl7YlzAx17Gb2oiq5iygA5FhtsDyys7j7uvAzKB43d5hPnbUCO1iEgpiUwQHwFdzayzmdUFzgImlJhnAjA6upppILDe3VeYWWszawZgZvWBIcD8BMaqBCEiUkLC2iDcPdfMrgDeBJKAx9x9jpldGk0fC0wEhgGLgE3A+dHibYEno3aIOsBz7v5aomLVA4NEREpLZCM17j6RkASKjhtb5LMDl8csNxvoncjYim1PfTGJiJSiO6nzqQQhIlKMEgToTmoRkRhKEKAEISISQwkCXeYqIhJHCQJUghARiaEEAXqinIhIDCUIVMUkIhJHCSKfEoSISDEVShBm9kszaxJ1ifGomc00s2MTHVy1UQlCRKSUipYgLnD3DcCxQGtClxh/TFhU1U0JQkSklIomCIvehwGPu/unRcbt9tQGISJSWkUTxAwz+w8hQbxpZo2BPeeyH13FJCJSSkU767uQ8GzoJe6+ycxaUNjz6u5PJQgRkVIqWoI4DFjg7uvM7BzgFmB94sKqXqpiEhEpraIJ4kFgk5n1An4NLAPGJSyqmqAEISJSTEUTRG707IbhwL3ufi/QOHFhVTOL2tuVJEREClS0DSLbzG4ERgFHRk96S0lcWNXL60R50r0wWYiI7OUqWoI4E9hKuB9iJdAOuCNhUdUUlSBERApUKEFESeEZoKmZnQhscfc9pw1CVUwiIqVUtKuNnwLTgTOAnwIfmtnpiQysWilBiIiUUtE2iJuB/u6+GsDMWgOTgBcSFVh1ciUIEZFSKtoGUSc/OUTWVGLZ2k8JQkSklIqWIP5tZm8C/4yGzwQmJiakGpCfINTdhohIgQolCHe/zsxOAwYROul7yN1fSmhk1UhVTCIipVW0BIG7vwi8mMBYap4ShIhIgXIThJllA3G/mga4uzdJSFTVTSUIEZFSyk0Q7r7ndKdRHiUIEZFS9pwrkXaC2iBEREpTggBdxSQiEkMJAlTFJCISQwmCIq3wShAiIgUSmiDM7HgzW2Bmi8zshpjpZmb3RdNnm1mfaHwHM5tsZvPMbI6Z/TKRcaoEISJSWsISRPTMiPuBoUAPYKSZ9Sgx21Cga/S6mPDkOoBc4FfufiAwELg8ZtldGWx4V4IQESmQyBLEAGCRuy9x923AeMIT6YoaDozz4AOgmZm1dfcV7j4TwN2zgXmEZ1AkhK5iEhEprcJ3UldBO+DrIsNZwKEVmKcdsCJ/hJl1AnoDH8ZtxMwuJpQ+SEtLIzMzs9KBtty2DYD3pk1je4sWlV4+UXJycqq0P4mmuCqvtsamuCpnb4srkQki7tmdJU/Ry53HzBoRuve4yt03xG3E3R8CHgLo16+fZ2RkVDrQha+8AsCgww+Hffap9PKJkpmZSVX2J9EUV+XV1tgUV+XsbXElsoopC+hQZLg9sLyi85hZCiE5POPu/0pgnGqDEBGJkcgE8RHQ1cw6m1ld4CxgQol5JgCjo6uZBgLr3X2FmRnwKDDP3e9KYIyALnMVEYmTsComd881syuAN4Ek4DF3n2Nml0bTxxKeKTEMWARsAs6PFh8EjAI+M7NZ0bib3D0xz6BQCUJEpJREtkEQ/aBPLDFubJHPDlwes9y7xLdPJEadOvkbrrZNiojUdrqTmiJVTOqLSUSkgBIEqIpJRCSGEgQoQYiIxFCCACUIEZEYShDoMlcRkThKEFB4FZMaqUVECihBgKqYRERiKEGgKiYRkThKEKAShIhIDCUIUIIQEYmhBAFKECIiMZQgKPJEOV3FJCJSQAkCVIIQEYmhBAFKECIiMZQg0GWuIiJxlCBAJQgRkRhKEKAHBomIxFCCQA8MEhGJowQBqmISEYmhBAFKECIiMZQgQAlCRCSGEgS6zFVEJI4SBOgqJhGRGEoQUFjFpKuYREQKKEGgKiYRkThKEKBGahGRGEoQoAQhIhJDCQKUIEREYihBUOSBQUoQIiIFlCBAVzGJiMRQggBVMYmIxEhogjCz481sgZktMrMbYqabmd0XTZ9tZn2KTHvMzFab2eeJjBF0mauISJyEJQgzSwLuB4YCPYCRZtajxGxDga7R62LgwSLTngCOT1R8xagEISJSSiJLEAOARe6+xN23AeOB4SXmGQ6M8+ADoJmZtQVw96nA9wmMr5AShIhIKckJXHc74Osiw1nAoRWYpx2woqIbMbOLCaUP0tLSyMzMrHSgKVu2APDpJ5+wNjmRh6RycnJyqrQ/iaa4Kq+2xqa4KmdviyuRv4YWM67kKXpF5imXuz8EPATQr18/z8jIqMziAMz8PDRz9OrZE6qwfKJkZmZSlf1JNMVVebU1NsVVOXtbXImsYsoCOhQZbg8sr8I8iacqJhGRUhKZID4CuppZZzOrC5wFTCgxzwRgdHQ100BgvbtXuHppl1GCEBEpJWEJwt1zgSuAN4F5wHPuPsfMLjWzS6PZJgJLgEXAw8DP85c3s38C/wUOMLMsM7swYbEWBp2oTYiI7HYS2iLr7hMJSaDouLFFPjtweRnLjkxkbMWoBCEiUorupIbCJ8qpqw0RkQJKEBTprE8JQkSkgBIEkNu4cfjwffXclycisjtQggC2NWsWPqxaVaNxiIjUJkoQwI769aFhQyUIEZEilCDypaXB6tU1HYWISK2hBJEvLU0lCBGRIpQg8rVpowQhIlKEEkQ+lSBERIpRgsiXlgbffQd5eTUdiYhIraAEka9Dh9DVxrJlNR2JiEitoASRr1+/8D59es3GISJSSyhB5Dv4YEhNVYIQEYkoQeRLSYG+feHFF2HWrJqORkSkxilBFPXb38K2bXDyyXDGGeElIrKXUoIoavBgeOEFWL48vL/wAjzySKh+Wrlyl29OfQOKSG2mBFHSoEGwaBE88UR4kNBFF8GcOfDSS7t0M9OnQ8uWIQeJiNRGShBxOnWCc8+Fq64KnfgB/PzncM454T6J0aPD9JJPoHv2WfjDHyq0ifxmjn//e1cFLSKyaylBlOeuuyAnB264IQw/8wx07QpPPQXjxsErr0BuLsybF+Y96yy46SaYODGML0dKSnjfti3B+yAiUkVKEBXxu9/Bxo0hCWzaBMOHQ8+eoRSx337Qowf86leF859wQvHhGPmFj23vTFOWEJFaKbmmA9gtJCeH19VXhxfA4sXw05/Ct9+GaqX27UPbxTffhIbt++6Dt94KVVSNG8P++8OWLXDllTBgABvmfQO0Y/s3q+G99+CYY2p0F0VESlKCqKr994cZM+Kn3XtvuCJqxgzIyAiljkceCdPmzoV772XDpG+BU9hKvdAQ8aMfhSRjBps3h2orEZEapCqmyLZtFf9NzsoKrzI1aACTJ8PSpaEU8d57kJkJw4bBzJlw5JGsn7UEgLVNO8Gf/xyqqurUgZ/8BLp0gb592eeNN0Ip5bHHYMeOndxDEZHKUQkicuWV8NBDocfvNm3Kn7dDh3CiX+5vdv360K5d4fDRR8OBB8J118GQIWy460CYBd+16AZnXhw2DjBpUkELdvc//zmMe/55+MUv4IADQimjceMwT3IyTJgQ7gB/9NHQMN6uXajmyi+N7NgREo+ISCUpQUSefTa8L1wYShIXXwwffADNmxef78svw3vJK1yL2rw55IdS2rSBJ58EYP2rwCz4dl1d+Pvf4e67wwY/+CAkkp49WTZmDB1/9rNw497kyaE0MmtW+NFv0CBUXbVpA2+8AfvuW3xbJ50UGstvuilUh7VvD2vXQu/eYSc2boTLL4chQ0KwdeqE9pTXXoM+fcIO9uoVkgyEXm63bw9VYSKyV1CCADZvrkNOTvi8cCF8+ml4nzoV2raFESNCLdFPfwotWhQut3Zt6QSydCl07hzywOjRZW9zw4bCdeTmQnKDBmzoN5iNBw6mbdsw7csLL6Tj0UeHgZEjw/umTWEjHTvCv/4Vgnv33XAz3wcfhB//Xr3Cpbivvhp++FeuDG0fGzeGqq58b70V3uvXDx0Vrl1bPMjRo+Hoo3l9y4/56y8XMTH3J9R5ahwpDRrA+vUwf35IOHXrFi6jEovIHmOvTxCbNsHo0YcWPCdo4UJ4//3wecSIwvmuuw4+/rj4sl98AQMGhM/Ll4eT7/wrVseOLT9BrF9f+Hnu3HDV7GGHhc+9e4d27qJWrQq/u61bNwiX1QKMGhXehw4Nr6LuuAO+/hoOOihUR23fHlawaFEoTXz6aUgqs2aFH/iNG0OCyMiAK64I63j6aRg3jhNxoCOrSKPtqFEMgrCuHTtC4B06hFJKZma4uuu002CffaBJk1CK+fJL2LoVjjoKmjaF7Oxwf8mPfhSy48qVIdkNHhwycsuWZR84Eak2e32CqFMHBg36jldeCe0Fb70Fs2eXnu/FFws/DxoUShQLFoTamFNOCcmhqBUr4J//DL93GRml17d+fUgu06eH39WePUNyAPjkk/B7OXx44fynnhpO8t9+OzQxNG0KjRqFacuWhZzx2mtFrpZt2bLgh/bZZ+Hpp1N45RWoc8ABYfrhh4dXnBEjQuArVoSMOTiMXjL1G9rmTmHxs8+ywdPZt0MSaS+NDS32b7zB/M5DmdPlVE4bNyZUTbnDLbfEb6N+/VAqeuMNrl/xS7ryBT/jlyGZjRgREkdOTmgcatQoXAXWvHnIntOnh5sSly8Pya5jR2jQgDpbt4Z1r1kTlm3cOKzn1lvh2muLV4+5F1afiUg8d99jXn379vWqmDx5sm/d6n7aae7gnpLi/stfuqelheGSr4cfdk9NdR840P2SSwrHH3+8u5l7ixbF58/Lc//jH90ffLBwm23bul9wgXvnzu4nnuj+1VfFlznsMPd33pnsn3/uvnate1KSe7167r//fZg+YEDhum6+OYwbMSIM5+S4P/KI+/bt7t9+W7jOGTPKPgZz57rfdZf72WeXnpa//FNPheFJkzId3Lt0CcM33ug+7tGt3rz5Dgf39a9NdV+1yv3jj93Hjw/v06a5P/CA+223hQPdoYM7+La+AwvW77/4hftJJ7l37eresaN7w4aFG09Ojv8yirzykpIK1lvwyv8yGjZ0HzrUPSPDvXt392bN3E8/3f2MM8IX8ec/+4LnZvmjxz8bDu5VV4WDfd55Ycc3bXLfuNH93Xfdv/jC/dVX/euH3/C8m38TvrwNG8LB3rLFNzz0T7/qtK/8289WhC8h+hsr08KF7vPmhfVv2eIv/GGhfzFjfZi2ZYv7jh1lL1tVmza5b95cflw1SHFVzs7EBXzsZfymmpfX2rqb6devn39csh6oAjIzM8nIyGD5cnj55VDV07t36HbpjjtCzUdmZuhl44UX4G9/CxcPXXhhmOeEE0J1f/5J8/r1xdsm9tsPvvoqfG7RItT2ZGeHrp7q1YM//Slc2bpkSfG4unffwPz5TTjkEPjss9Jx33or/M//hBLKypWh6WHqVPj970PcdeuG+/TymxZuvz30GrJ5cyg5ffFF6D3ktNPg0EML1ztjRigd1asXej7P7xbkkktCrdSaNRuYN68JENq1W7cuHtdLLxWvnitpxw7wvB34xzN4/Zt0RpwRNvDRR6Fw8POfRzNu3BiCycqCE08MQW3aFBpwPvssFLG++SZUk7nz1SefsB+Eq7patcK/Wc7fnmlGxqBcDvl6Ygg2JSUcgJ49YcqUsJNr1sC6dezPIpawP191P5YOC98mbwcktWgW2+3uctrSjuXcwB/4Q90xYaei7lVu5yZu4XZu5X/539b3w4EHsm7tWpotWxaKfq1ahT+C+vXDMlH8ADkN02i68RvOqfc8T3b4Taie228/6NYtlIqyssIfy8CBodpu27bwx9mwYbjgIH//vvoqFId79Ajzd+gQYjzkkFAUveIKyM1lVY8epCUlhR6L+/QJf7ydOoW4WrYM9aopKeG7aNMmfNmbN4fvIjk5PImxSZPwvTRrFvYj//K+Nm3CvBs2hPeGDUPxePHiUPobPDiM79UrvLdpE5Zdu5a5b75Jj86dQ6yNGoVj1a1b2Gb9+oX3CmVlheX22y/8c02dGv65OnQIJcvNm8NxSkoK60lODv+oHTrAunVhXMOG4R/CPfyNNGgQXhs2hPEpKWGZNWuY9umnHDl0aIhz2za++mgVHfrvgyUnhaqHffcN+5acHH4wtm4N+9utW4g7Ly9MW7w4/O127hyO94wZ4Z94n33CvPnHMzW18EelceOwHxD+fqDgnzP/N6wqzGyGu/eLnVhW5tgdXztTgqiK775zX7o0/gRv0SL3N95wP/VU97593S+91P2449z79Aknuaef7v7f/7pv2xY+g/vw4e4tW7rvs08YrlNnhzdqVPpkeebM4ifXDRqEk+OyTq7328+9f3/3Vq3c27cP87dsWXq+9PTS466+uvwT99tvLz3ulFPc16wJJadPPnE/6KBQcHj88VA4aN/evVu3EFPcOv/zn3AMzz03nOCvX+8+ZUrhcc7Odp89233r1sLjnZPj/rvfzfaNG91vuSWUlu68M6yvf/+w7MKF7uvWFS6zbVuRL2zWrILtP/ig+9i7N3nrlnn+6Sd57hMmhJXecov7vfe6P/CAP3HDvHDsU3Pdr73W/de/dr/vPt947a2e3n61g/up6Yvdhw1zHzjQczp18u8v+JU/cdhY/z7jFN88eJhvyTjOfdAg9379fOX5N3ju1df628f9ycG9Vd31/vygu3zH5Ve4H3GEe4cO/vP6j/odvZ8OJZzkZPfkZM+u28I/6fcz9/R0X2vNfSpHeG5yPZ+XfLB/ePAF/ny3m/zElH/7BwwIxdBoJ/9W/1r/TdpYX5HWLXxBP1A6c/Ad4P/kTF9F6wrNX95rVYNOvoIyiuiVeH1Fe7+PK3xHBebdQl3fSkoYNiucZubeuLF78+Y/uI68pCT3OnXcU1J8Nge7kef/4Kxi82ygkW+hbpgvfztJSaHaoU6dUHrNn7/kcMlX06aFpeCkJPd993Vv0yb8ANStG6bvu6/n7LdflX7D3N2pqRKEmR0P3AskAY+4+x9LTLdo+jBgE3Ceu8+syLJxdrYEUVPcwwVB3bqFEwT3cKHSjBnvc9xxh/O3v4UTntatw60QnTqFE7gFC+Dzz8MVrcnJoSG9UaNwJn7ZZWHd//oXXH99OJm5/PJwsvfll6FpoX9/+O67sO3Ro8OVVzffDP/3f+GKrXnzCksuDRuGk8gLLwy3XBTVqlVYD4TbPaZMCZ/z27HLUnS5ijjssHBS+Npr4WR6v/1Cm0uHDqFkN39+6WU6dAht9T17hhO89HQ48shw0j1nDpx5ZigBrl4N11wTltl//3CCB6GJ4+9/DyeFy5eHE9LZs8MFY/kFi7/9LZxoz5hReLzq1AmFhbfeCvs4b94s7r47na++Cif/S5eGk8JjjoHTTw+lpgYNShdWzj8/nNw3auhccmloM/nDH+DkwTls2Z7EqIvrM3cu/PWvcM/dzuIl8e0qjRs7n328DRYtYuo7uYz+Sy8AmjTZzm23pXBCm4/47OtmHP7j+qyYt5bmTXaw8NNNfLTxIFo3zyVtv3p8/P42/u/B5hzdN4e3nl7FY8825LC2S5n0bj1em70fM79oTMbBazjlsJU0SNnGYS0WktKkPs/P7kbbNCd341be/aYTa/Ka8+y/kmnXJpc3H/6KRe+vJrVZKpffvT9nHPYN7dvDuryVLFzdj3MyvuHrlSlsWrOZRfNzufjwz9m8tQ4zVrVjbXIb/vZmV75anszEG6dxTKvPeGzFUL78thGnD/iKZ/5Vn1vOWUqbNGPlmhSG3Ngfd3j7qlepm7WEoa9cwskHLOTmAW9Bdjbbc7aytHV/ujRdw7Q5LbhhyvE8+tP/cFCrVXjeDt5ZfTDfz53FGf0247l5/Gb6Sdw+5QhOPGAhx3T8kk4H1KNb6lec/ORpdGi5kUePGse33xm9T+tC6vxZkJPD1tSm1P3mS3b0P5T3v+1Kx3WfsjIrlxX79ObE/2lC7tyF1MtaTE7Tdmz7PocWa75g+YZGTNg0hH2TV3NSw3f47/cH8PCCI7mz0/20aLwda9iAZdu30/GZZyr+z1REjZQgCD/si4EuQF3gU6BHiXmGAW8ABgwEPqzosnGv6i5BJFqi4tq+3X3z5vA5L8998eJQ1Z1v3rzCeaZMCWfr8+a5v/BCOGt//vn3fMEC97vvdr/jDvcVK8I67rnHPTc3lJzuuSe0jYweHZof/vEP97/+1f3DD0O7zdy57t9/775sWajWv+CC0Ibz8cfuJ5wQSiHHHed+2WWhxPWTn7j37h1KV+eeG7bdoUM4mYJQMunQYaM3axbW37ZtWP6779x/9zv3Y48tnLdBg7C+kSNLn7D98Y+hpAXuf/qTlyrB1akTTjYhNKV06RI+N2sWPqekuL/ySjhuqanFl01NdR81qnA9F11UWJIrcnJf7qtPn7KnpUQnx02ahMLOkCGF00o24QwYENqcdvIEvtQr/xiX9WrQYNdvM/94xo2vVy8cj/zjU69e6Xnq1w/fX9Om8dP22ad44aJ16/j1lPdq2TKUnCEUCOJqBvK/v06dCvcn/2+x6PHNn5aaWrhP7dtvrPLvATVRgjCzw4Ax7n5cNHxjlJD+UGSevwOZ7v7PaHgBkAF0+qFl4+yuJYiyKK6Kyc0NJa/MzEyOOiqjoJo2zjffhJJY/q0ba9YUPiywdetQnZ2bG9ptWrcOlxcvWhSaKrp2DSW11NRQfd2iRShVLVoUzvJ37Ajry7+PZfHiUNJo1w7++9/ZjBjRkwMPDKWMjRtDSSIrC958M1wB/PXXYZv16oV1DhkS2onq1g3tUw0bwhFHhJLPJ5+E4U2bQhvUxx+Hi9JSU0OzRP6VwpMnh+1v2xZKdvnV4OecEz6PGzed7t0HMGNGqA7//PMQ/4YNocp7xIjwedWqUJ3erVu4hHvLltCcsWhRqHbfbz/o3h3S0sL+bdgQSrJ5eWE/cnPD9rp0Cfs5c2Y4Xt9+G0p1n30W7g/9/PMw/9ixizjnnB+xcmUoxU2bFrazenWII/++0OXLw/cybVr4Prp2DduZPz+UtidPDjHss09oT0tOhueeC9s+9FD48MNQGt28OexT165hX81CiXXKlHDszEJTybvvLiM1tSNNmoS/gWOPLWzq2bgxlBqbNw9xNWsWvs/588Pwxo2h9L9yZfiODz44HIs2bcIx//DD0KSwbFn4Lho0CMe3R4+wnRkzwi1P9euH2KZOLWyWWL58GU891bFK/z/llSASmSBOB453959Fw6OAQ939iiLzvAb80d3fjYbfBq4nJIhyly2yjouBiwHS0tL6jh8/vtKx5uTk0Cj/mtFaRHFVTm2NC2pvbIqrcvbEuI455pgyE0Qi74OIqwwtmY3Kmqciy4aR7g8BD0EoQVTlzLa2nRHnU1yVU1vjgtobm+KqnL0trkQmiCygQ5Hh9sDyCs5TtwLLiohIAiWy05yPgK5m1tnM6gJnARNKzDMBGG3BQGC9u6+o4LIiIpJACStBuHuumV0BvEm4Kukxd59jZpdG08cCEwlXMi0iXOZ6fnnLJipWEREpLaF9Mbn7REISKDpubJHPDlxe0WVFRKT6qF9mERGJpQQhIiKxlCBERCTWHtWbq5l9CyyrwqKtgEr0ClRtFFfl1Na4oPbGprgqZ0+Mq6O7t46bsEcliKoys4/LupOwJimuyqmtcUHtjU1xVc7eFpeqmEREJJYShIiIxFKCCB6q6QDKoLgqp7bGBbU3NsVVOXtVXGqDEBGRWCpBiIhILCUIERGJtVcnCDM73swWmNkiM7uhFsSz1Mw+M7NZZvZxNK6Fmb1lZl9E782rIY7HzGy1mX1eZFyZcZjZjdExXGBmx1VzXGPM7JvomM0ys2E1EFcHM5tsZvPMbI6Z/TIaX6PHrJy4avSYmVmqmU03s0+juP43Gl/Tx6usuGr8byzaVpKZfRI9aK16jldZzyLd019U8bnXCY5pKdCqxLg/AzdEn28A/lQNcRwF9AE+/6E4gB7RsasHdI6OaVI1xjUGuDZm3uqMqy3QJ/rcGFgYbb9Gj1k5cdXoMSM8EKxR9DkF+JDwTPqaPl5lxVXjf2PR9q4B/gG8Fg0n/HjtzSWIAcAid1/i7tuA8cDwGo4pznDgyejzk8CIRG/Q3acC31cwjuHAeHff6u5fErpuH1CNcZWlOuNa4e4zo8/ZwDygHTV8zMqJqyzVFZe7e040mBK9nJo/XmXFVZZq+xszs/bACcAjJbaf0OO1NyeIdsDXRYazKP+fpzo48B8zm2HhWdsAaR4eokT03qaGYisrjtpwHK8ws9lRFVR+MbtG4jKzTkBvwtlnrTlmJeKCGj5mUXXJLGA18Ja714rjVUZcUPN/Y/cAvwZ2FBmX8OO1NyeICj/3uhoNcvc+wFDgcjM7qobjqYiaPo4PAvsD6cAK4C/R+GqPy8waAS8CV7n7hvJmjRmXsNhi4qrxY+buee6eTnic8AAzO7ic2Ws6rho9XmZ2IrDa3WdUdJGYcVWKa29OEBV5Zna1cvfl0ftq4CVCsXCVmbUFiN5X11B4ZcVRo8fR3VdF/9Q7gIcpLEpXa1xmlkL4EX7G3f8Vja7xYxYXV205ZlEs64BM4HhqwfGKi6sWHK9BwMlmtpRQFT7YzJ6mGo7X3pwgatVzr82soZk1zv8MHAt8HsV0bjTbucArNRNhmXFMAM4ys3pm1hnoCkyvrqDy/0EipxCOWbXGZWYGPArMc/e7ikyq0WNWVlw1fczMrLWZNYs+1weGAPOp+eMVG1dNHy93v9Hd27t7J8Lv1Dvufg7VcbwS1eK+O7wIz8NeSGjlv7mGY+lCuPLgU2BOfjxAS+Bt4IvovUU1xPJPQlF6O+Fs5MLy4gBujo7hAmBoNcf1FPAZMDv6x2hbA3EdQSjCzwZmRa9hNX3MyomrRo8Z0BP4JNr+58CtP/S3XsNx1fjfWJHtZVB4FVPCj5e62hARkVh7cxWTiIiUQwlCRERiKUGIiEgsJQgREYmlBCEiIrGUIERqATPLyO+lU6S2UIIQEZFYShAilWBm50TPDJhlZn+POnfLMbO/mNlMM3vbzFpH86ab2QdRJ28v5XfyZmY/MrNJ0XMHZprZ/tHqG5nZC2Y238yeie6EFqkxShAiFWRmBwJnEjpVTAfygLOBhsBMDx0tTgFuixYZB1zv7j0Jd+Lmj38GuN/dewGHE+4Oh9Db6lWE/vy7EPrgEakxyTUdgMhu5MdAX+Cj6OS+PqGDtB3As9E8TwP/MrOmQDN3nxKNfxJ4Pupvq527vwTg7lsAovVNd/esaHgW0Al4N+F7JVIGJQiRijPgSXe/sdhIs9+UmK+8/mvKqzbaWuRzHvr/lBqmKiaRinsbON3M2kDBM4E7Ev6PTo/m+R/gXXdfD6w1syOj8aOAKR6ex5BlZiOiddQzswbVuRMiFaUzFJEKcve5ZnYL4al/dQi9yl4ObAQOMrMZwHpCOwWELpjHRglgCXB+NH4U8Hcz+220jjOqcTdEKky9uYrsJDPLcfdGNR2HyK6mKiYREYmlEoSIiMRSCUJERGIpQYiISCwlCBERiaUEISIisZQgREQk1v8DN6QBv6svv1oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画损失曲线图\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(loss) + 1)\n",
    "plt.title('LSTM Loss curve')\n",
    "plt.plot(epochs, loss, 'red', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'blue', label='Validation loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "sc_one = MinMaxScaler(feature_range = (0, 1))\n",
    "sc_one.fit_transform(all_data.iloc[:, 1:2])\n",
    "predicted_stock_train = regressor.predict(x_train)\n",
    "predicted_stock_train = sc_one.inverse_transform(predicted_stock_train)\n",
    "predicted_stock_test = regressor.predict(x_test)\n",
    "predicted_stock_test = sc_one.inverse_transform(predicted_stock_test)\n",
    "real_price_train=sc_one.inverse_transform(np.reshape(y_train,(-1,1)))\n",
    "real_price_test=sc_one.inverse_transform(np.reshape(y_test,(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_train, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('LSTM train Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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JfY3JCSE3Nxcp+tKS0tdrnM3tvMMHjyY7du3k5uby759+/jTn/5ERkYGrVq14uWXX6Z3794sWbKEZ555huLiYsLDw3nzzTeJioqisLCQoqKi09p86NAhxo4da18eGxtLbm4u9957L7t27WLgwIFcccUV3HTTTdx99938+uuv+Pn58eSTTzJu3DhKS0t5+OGHWbFiBUoprrvuOubNm4fWmry8PMrKyrjqqquYOXMmc+fOrXBu2zaBgYEMHTqU119/ne3bt3PJJZcwduxYNm7cyEcffcS0adP48ccfiYiI4KOPPuLll19GKUW/fv1YsGAB6enp3HXXXRw6dAiAp59+mrPPPrvOn3d9vtvCwsLa/Q+01g32ALoD250sTwCGVrFfR+s5CtgKjKvJ+YYMGaLrysqVK+u246BBWoPWDz5Y53N7gjr3t5nSEvu7Y8eO8jd33qn1+PH2R/GYMRXe1+lx553VtqF169Zaa61LSkr0pZdeqpcsWaK11vqcc87Ru3bt0lprvX79ej1x4kSttdYnTpzQZWVlWmutFyxYoO+55x6ttdbvvPOOvu222047/tKlS3VISIieMGGCfvzxx/Xhw4e11vJ9Tp8+XWutdU5Ojn7uuef03LlztdZa79y5U3fp0kUXFBTof//73/riiy/WxcXFWmutMzIytNZad+vWTScnJ+tJkybpd99912nfunXrpo8fP6611vq2227T9913n05OTtZKKb1u3brTttu+fbvu3bu3fR/bua688kq9evVqrbXWBw4c0H379q32c62KnJycOu9b4TdjAWzSLq6pTdKC0FofsZ6PKaUWAcOpmd+i8UlOlucDLutdGQwtloKCAgYNGsT+/fsZMmQIkydPJi8vj7Vr13LZZZfZtzt16hQguRuzZ8/m6NGjFBUVVRuTP3XqVPbt28fSpUtZsmSJ3UqpzJo1a7jjjjsA6Nu3L926dWPXrl18//33zJs3Dz8/udSFh4fb95k5cyb33XcfV199tcvzT5w4EV9fXwYOHMjjjz9OVlYW3bp1c2oB/PDDD1x66aW0b9++wrm+//57duzYYd8uJyen2eRuNDmBUEq1Bny01rnW6ynAYx5ulnMyMyE7W14fPOjZthi8m3/9q8Lbgka6ANl8ENnZ2VxwwQW8+uqrzJ07l9DQULZs2XLa9nfccQf33HMPF154IQkJCTz66KPV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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_test, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_test, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('LSTM test Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LSTM模型的均方误差是: 0.043080\n",
      "LSTM模型的均方根误差是: 0.207558\n",
      "LSTM模型的平均绝对误差是: 0.151054\n",
      "LSTM模型的R-squared是: 0.903386\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
    "import math\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_test, real_price_test)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt( mean_squared_error(predicted_stock_test, real_price_test))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_test, real_price_test)\n",
    "\n",
    "r2=r2_score(predicted_stock_test, real_price_test)\n",
    "\n",
    "print('LSTM模型的均方误差是: %.6f' % mse)\n",
    "print('LSTM模型的均方根误差是: %.6f' % rmse)\n",
    "print('LSTM模型的平均绝对误差是: %.6f' % mae)\n",
    "print('LSTM模型的R-squared是: %.6f' % r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.layers import Dense, LSTM, Dropout, GRU, Bidirectional"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "#GRU\n",
    "regressorGRU = Sequential()\n",
    "regressorGRU.add(GRU(units=50, return_sequences=True, input_shape=(x_train.shape[1],5)))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(GRU(units=50, return_sequences=True))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(GRU(units=50, return_sequences=True))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(GRU(units=50))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(Dense(units=1))\n",
    "regressorGRU.compile(optimizer='adam', loss='mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_3\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "gru_4 (GRU)                  (None, 60, 50)            8550      \n",
      "_________________________________________________________________\n",
      "dropout_9 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "gru_5 (GRU)                  (None, 60, 50)            15300     \n",
      "_________________________________________________________________\n",
      "dropout_10 (Dropout)         (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "gru_6 (GRU)                  (None, 60, 50)            15300     \n",
      "_________________________________________________________________\n",
      "dropout_11 (Dropout)         (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "gru_7 (GRU)                  (None, 50)                15300     \n",
      "_________________________________________________________________\n",
      "dropout_12 (Dropout)         (None, 50)                0         \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 1)                 51        \n",
      "=================================================================\n",
      "Total params: 54,501\n",
      "Trainable params: 54,501\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(regressorGRU.summary()) # Summarize Model 模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n",
      "\n",
      "               Input   #####     60    5\n",
      "                 GRU   LLLLL -------------------      8550    15.7%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                 GRU   LLLLL -------------------     15300    28.1%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                 GRU   LLLLL -------------------     15300    28.1%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                 GRU   LLLLL -------------------     15300    28.1%\n",
      "                tanh   #####          50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####          50\n",
      "               Dense   XXXXX -------------------        51     0.1%\n",
      "                       #####           1\n"
     ]
    }
   ],
   "source": [
    "from keras_sequential_ascii import keras2ascii\n",
    "keras2ascii(regressorGRU)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "#from keras.utils import plot_model \n",
    "#plot_model(regressorGRU, to_file='model.png', show_shapes=True, show_layer_names=True) # plot my model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/400\n",
      "20/20 [==============================] - 1s 71ms/step - loss: 0.0625 - val_loss: 0.0184\n",
      "Epoch 2/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0124 - val_loss: 9.7819e-04\n",
      "Epoch 3/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0066 - val_loss: 0.0011\n",
      "Epoch 4/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0061 - val_loss: 7.8074e-04\n",
      "Epoch 5/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0048 - val_loss: 7.2003e-04\n",
      "Epoch 6/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0049 - val_loss: 0.0012\n",
      "Epoch 7/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0046 - val_loss: 0.0017\n",
      "Epoch 8/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0043 - val_loss: 0.0023\n",
      "Epoch 9/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0043 - val_loss: 9.6688e-04\n",
      "Epoch 10/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0039 - val_loss: 6.7032e-04\n",
      "Epoch 11/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0040 - val_loss: 6.7395e-04\n",
      "Epoch 12/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0036 - val_loss: 0.0011\n",
      "Epoch 13/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0036 - val_loss: 7.4601e-04\n",
      "Epoch 14/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0033 - val_loss: 6.9367e-04\n",
      "Epoch 15/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0032 - val_loss: 7.6248e-04\n",
      "Epoch 16/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0031 - val_loss: 9.3901e-04\n",
      "Epoch 17/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0035 - val_loss: 7.0659e-04\n",
      "Epoch 18/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0031 - val_loss: 6.9348e-04\n",
      "Epoch 19/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0030 - val_loss: 7.6848e-04\n",
      "Epoch 20/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0031 - val_loss: 0.0020\n",
      "Epoch 21/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0032 - val_loss: 7.1758e-04\n",
      "Epoch 22/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0030 - val_loss: 7.1785e-04\n",
      "Epoch 23/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0030 - val_loss: 0.0016\n",
      "Epoch 24/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0030 - val_loss: 7.2064e-04\n",
      "Epoch 25/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0030 - val_loss: 7.8752e-04\n",
      "Epoch 26/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0030 - val_loss: 6.9023e-04\n",
      "Epoch 27/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0031 - val_loss: 7.6215e-04\n",
      "Epoch 28/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0029 - val_loss: 0.0010\n",
      "Epoch 29/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0027 - val_loss: 6.5587e-04\n",
      "Epoch 30/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0028 - val_loss: 0.0013\n",
      "Epoch 31/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0029 - val_loss: 0.0011\n",
      "Epoch 32/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0027 - val_loss: 6.4206e-04\n",
      "Epoch 33/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0026 - val_loss: 6.9640e-04\n",
      "Epoch 34/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0025 - val_loss: 8.5413e-04\n",
      "Epoch 35/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0027 - val_loss: 6.5057e-04\n",
      "Epoch 36/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0023 - val_loss: 7.4086e-04\n",
      "Epoch 37/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 8.6977e-04\n",
      "Epoch 38/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 7.2234e-04\n",
      "Epoch 39/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0023 - val_loss: 8.5576e-04\n",
      "Epoch 40/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0026 - val_loss: 0.0010\n",
      "Epoch 41/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 5.9101e-04\n",
      "Epoch 42/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 9.8726e-04\n",
      "Epoch 43/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 5.5510e-04\n",
      "Epoch 44/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 6.7399e-04\n",
      "Epoch 45/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0022 - val_loss: 6.2658e-04\n",
      "Epoch 46/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0022 - val_loss: 0.0014\n",
      "Epoch 47/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 6.0082e-04\n",
      "Epoch 48/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 6.9015e-04\n",
      "Epoch 49/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0024 - val_loss: 6.6848e-04\n",
      "Epoch 50/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0022 - val_loss: 7.2585e-04\n",
      "Epoch 51/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 9.8495e-04\n",
      "Epoch 52/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0023 - val_loss: 5.0317e-04\n",
      "Epoch 53/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0022 - val_loss: 6.1850e-04\n",
      "Epoch 54/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 9.1481e-04\n",
      "Epoch 55/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0022 - val_loss: 0.0013\n",
      "Epoch 56/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 5.2069e-04\n",
      "Epoch 57/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 0.0011\n",
      "Epoch 58/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 5.8815e-04\n",
      "Epoch 59/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 5.3063e-04\n",
      "Epoch 60/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 7.6476e-04\n",
      "Epoch 61/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 5.2553e-04\n",
      "Epoch 62/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 5.5760e-04\n",
      "Epoch 63/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 5.1819e-04\n",
      "Epoch 64/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 5.1187e-04\n",
      "Epoch 65/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 0.0010\n",
      "Epoch 66/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 4.6661e-04\n",
      "Epoch 67/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0019 - val_loss: 4.9464e-04\n",
      "Epoch 68/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 4.7330e-04\n",
      "Epoch 69/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 6.2121e-04\n",
      "Epoch 70/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0018 - val_loss: 0.0018\n",
      "Epoch 71/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0018 - val_loss: 4.8650e-04\n",
      "Epoch 72/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0019 - val_loss: 0.0010\n",
      "Epoch 73/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 4.4109e-04\n",
      "Epoch 74/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0019 - val_loss: 0.0019\n",
      "Epoch 75/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 5.5860e-04\n",
      "Epoch 76/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0019 - val_loss: 4.6273e-04\n",
      "Epoch 77/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0020 - val_loss: 0.0018\n",
      "Epoch 78/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0019 - val_loss: 5.7898e-04\n",
      "Epoch 79/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0021 - val_loss: 7.6782e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 80/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0018 - val_loss: 4.0388e-04\n",
      "Epoch 81/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0017 - val_loss: 5.8483e-04\n",
      "Epoch 82/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0018 - val_loss: 4.0025e-04\n",
      "Epoch 83/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 4.0295e-04\n",
      "Epoch 84/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0017 - val_loss: 4.5054e-04\n",
      "Epoch 85/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0017 - val_loss: 3.9171e-04\n",
      "Epoch 86/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0017 - val_loss: 4.3105e-04\n",
      "Epoch 87/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 7.4408e-04\n",
      "Epoch 88/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0017 - val_loss: 4.1120e-04\n",
      "Epoch 89/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0018 - val_loss: 5.6634e-04\n",
      "Epoch 90/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 3.9811e-04\n",
      "Epoch 91/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0017 - val_loss: 4.9286e-04\n",
      "Epoch 92/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 5.8723e-04\n",
      "Epoch 93/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 3.8238e-04\n",
      "Epoch 94/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0018 - val_loss: 7.8357e-04\n",
      "Epoch 95/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0017 - val_loss: 4.1120e-04\n",
      "Epoch 96/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 8.0122e-04\n",
      "Epoch 97/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0019 - val_loss: 5.7045e-04\n",
      "Epoch 98/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 4.8860e-04\n",
      "Epoch 99/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 8.7876e-04\n",
      "Epoch 100/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.6732e-04\n",
      "Epoch 101/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.8539e-04\n",
      "Epoch 102/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 0.0011\n",
      "Epoch 103/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0016 - val_loss: 4.6332e-04\n",
      "Epoch 104/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.6527e-04\n",
      "Epoch 105/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.6838e-04\n",
      "Epoch 106/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 0.0021\n",
      "Epoch 107/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.8203e-04\n",
      "Epoch 108/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 5.7871e-04\n",
      "Epoch 109/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0018 - val_loss: 3.7193e-04\n",
      "Epoch 110/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 3.8631e-04\n",
      "Epoch 111/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 4.7933e-04\n",
      "Epoch 112/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 4.3919e-04\n",
      "Epoch 113/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.4512e-04\n",
      "Epoch 114/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 3.4500e-04\n",
      "Epoch 115/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 3.4124e-04\n",
      "Epoch 116/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 3.4779e-04\n",
      "Epoch 117/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 3.2933e-04\n",
      "Epoch 118/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 3.7401e-04\n",
      "Epoch 119/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 8.3024e-04\n",
      "Epoch 120/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 6.3843e-04\n",
      "Epoch 121/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 3.2721e-04\n",
      "Epoch 122/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 3.5641e-04\n",
      "Epoch 123/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.8491e-04\n",
      "Epoch 124/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.6886e-04\n",
      "Epoch 125/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 0.0010\n",
      "Epoch 126/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 6.6759e-04\n",
      "Epoch 127/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 0.0012\n",
      "Epoch 128/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0015 - val_loss: 3.3865e-04\n",
      "Epoch 129/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 3.4122e-04\n",
      "Epoch 130/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 5.4122e-04\n",
      "Epoch 131/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.3140e-04\n",
      "Epoch 132/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 3.2869e-04\n",
      "Epoch 133/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 3.3742e-04\n",
      "Epoch 134/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 4.3024e-04\n",
      "Epoch 135/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 4.0780e-04\n",
      "Epoch 136/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 4.4293e-04\n",
      "Epoch 137/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.1238e-04\n",
      "Epoch 138/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0013 - val_loss: 8.2614e-04\n",
      "Epoch 139/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 3.8412e-04\n",
      "Epoch 140/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.5655e-04\n",
      "Epoch 141/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.2103e-04\n",
      "Epoch 142/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0013 - val_loss: 4.8421e-04\n",
      "Epoch 143/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 3.5320e-04\n",
      "Epoch 144/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 4.6900e-04\n",
      "Epoch 145/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 3.2872e-04\n",
      "Epoch 146/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.1910e-04\n",
      "Epoch 147/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.5783e-04\n",
      "Epoch 148/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 2.9580e-04\n",
      "Epoch 149/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 5.6839e-04\n",
      "Epoch 150/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0012 - val_loss: 5.3819e-04\n",
      "Epoch 151/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 2.9782e-04\n",
      "Epoch 152/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 2.9363e-04\n",
      "Epoch 153/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 4.6639e-04\n",
      "Epoch 154/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.4676e-04\n",
      "Epoch 155/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 5.4954e-04\n",
      "Epoch 156/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 7.5727e-04\n",
      "Epoch 157/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 5.1989e-04\n",
      "Epoch 158/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0014 - val_loss: 4.3176e-04\n",
      "Epoch 159/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 3.5345e-04\n",
      "Epoch 160/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 4.7221e-04\n",
      "Epoch 161/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 8.3859e-04\n",
      "Epoch 162/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 2.7507e-04\n",
      "Epoch 163/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 3.8944e-04\n",
      "Epoch 164/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 4.9002e-04\n",
      "Epoch 165/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0012 - val_loss: 4.3361e-04\n",
      "Epoch 166/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 4.0250e-04\n",
      "Epoch 167/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 2.7537e-04\n",
      "Epoch 168/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 3.8874e-04\n",
      "Epoch 169/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 3.1106e-04\n",
      "Epoch 170/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 3.6513e-04\n",
      "Epoch 171/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.6769e-04 - val_loss: 3.3117e-04\n",
      "Epoch 172/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.7320e-04 - val_loss: 7.1511e-04\n",
      "Epoch 173/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 0.0011 - val_loss: 3.6170e-04\n",
      "Epoch 174/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 3.8045e-04\n",
      "Epoch 175/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 3.0267e-04\n",
      "Epoch 176/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 6.0217e-04\n",
      "Epoch 177/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 4.8465e-04\n",
      "Epoch 178/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 5.0231e-04\n",
      "Epoch 179/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 3.9980e-04\n",
      "Epoch 180/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4000e-04 - val_loss: 2.8082e-04\n",
      "Epoch 181/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.5165e-04 - val_loss: 3.5297e-04\n",
      "Epoch 182/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.0715e-04 - val_loss: 4.5130e-04\n",
      "Epoch 183/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 3.0577e-04\n",
      "Epoch 184/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4603e-04 - val_loss: 2.9270e-04\n",
      "Epoch 185/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.8790e-04 - val_loss: 3.6323e-04\n",
      "Epoch 186/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 5.5955e-04\n",
      "Epoch 187/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.9216e-04 - val_loss: 0.0014\n",
      "Epoch 188/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 5.5268e-04\n",
      "Epoch 189/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.9916e-04 - val_loss: 2.5918e-04\n",
      "Epoch 190/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.0415e-04 - val_loss: 3.4011e-04\n",
      "Epoch 191/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.9098e-04 - val_loss: 4.2954e-04\n",
      "Epoch 192/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.5732e-04 - val_loss: 5.3195e-04\n",
      "Epoch 193/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4277e-04 - val_loss: 3.2572e-04\n",
      "Epoch 194/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.1366e-04 - val_loss: 4.1878e-04\n",
      "Epoch 195/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 2.8459e-04\n",
      "Epoch 196/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.9746e-04 - val_loss: 7.0157e-04\n",
      "Epoch 197/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 7.3890e-04\n",
      "Epoch 198/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.6297e-04 - val_loss: 3.1989e-04\n",
      "Epoch 199/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.7219e-04 - val_loss: 2.5854e-04\n",
      "Epoch 200/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.0959e-04 - val_loss: 4.2651e-04\n",
      "Epoch 201/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.2022e-04 - val_loss: 2.8152e-04\n",
      "Epoch 202/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.6503e-04 - val_loss: 3.0045e-04\n",
      "Epoch 203/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.8897e-04 - val_loss: 4.2384e-04\n",
      "Epoch 204/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.2842e-04 - val_loss: 5.4402e-04\n",
      "Epoch 205/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.9056e-04 - val_loss: 5.4315e-04\n",
      "Epoch 206/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.3489e-04 - val_loss: 3.7865e-04\n",
      "Epoch 207/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.9285e-04 - val_loss: 4.4151e-04\n",
      "Epoch 208/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.9853e-04 - val_loss: 3.9043e-04\n",
      "Epoch 209/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.7312e-04 - val_loss: 2.9214e-04\n",
      "Epoch 210/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.4803e-04 - val_loss: 2.5106e-04\n",
      "Epoch 211/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 2.9514e-04\n",
      "Epoch 212/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.8731e-04 - val_loss: 3.0401e-04\n",
      "Epoch 213/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.9303e-04 - val_loss: 2.4305e-04\n",
      "Epoch 214/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.5001e-04 - val_loss: 3.5773e-04\n",
      "Epoch 215/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.7421e-04 - val_loss: 3.4801e-04\n",
      "Epoch 216/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 0.0011\n",
      "Epoch 217/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.4475e-04 - val_loss: 2.8583e-04\n",
      "Epoch 218/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4569e-04 - val_loss: 4.4394e-04\n",
      "Epoch 219/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.8567e-04 - val_loss: 5.5009e-04\n",
      "Epoch 220/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0010 - val_loss: 2.7100e-04\n",
      "Epoch 221/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.8847e-04 - val_loss: 6.0240e-04\n",
      "Epoch 222/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4526e-04 - val_loss: 2.5944e-04\n",
      "Epoch 223/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3747e-04 - val_loss: 2.3959e-04\n",
      "Epoch 224/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4488e-04 - val_loss: 7.2624e-04\n",
      "Epoch 225/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.4499e-04 - val_loss: 3.9824e-04\n",
      "Epoch 226/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.1742e-04 - val_loss: 4.1942e-04\n",
      "Epoch 227/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3665e-04 - val_loss: 2.3985e-04\n",
      "Epoch 228/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.8252e-04 - val_loss: 2.6454e-04\n",
      "Epoch 229/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3046e-04 - val_loss: 2.4364e-04\n",
      "Epoch 230/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7611e-04 - val_loss: 2.8885e-04\n",
      "Epoch 231/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.4334e-04 - val_loss: 3.9342e-04\n",
      "Epoch 232/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 13ms/step - loss: 9.5636e-04 - val_loss: 2.4724e-04\n",
      "Epoch 233/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.4329e-04 - val_loss: 2.5031e-04\n",
      "Epoch 234/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3815e-04 - val_loss: 2.4195e-04\n",
      "Epoch 235/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.9725e-04 - val_loss: 7.9211e-04\n",
      "Epoch 236/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.5060e-04 - val_loss: 3.4179e-04\n",
      "Epoch 237/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.1225e-04 - val_loss: 2.5081e-04\n",
      "Epoch 238/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.2553e-04 - val_loss: 4.5451e-04\n",
      "Epoch 239/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.6298e-04 - val_loss: 2.2992e-04\n",
      "Epoch 240/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.9219e-04 - val_loss: 5.7694e-04\n",
      "Epoch 241/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.8282e-04 - val_loss: 2.2136e-04\n",
      "Epoch 242/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0836e-04 - val_loss: 4.6346e-04\n",
      "Epoch 243/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.1781e-04 - val_loss: 3.1404e-04\n",
      "Epoch 244/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.4576e-04 - val_loss: 2.7081e-04\n",
      "Epoch 245/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.5136e-04 - val_loss: 3.1907e-04\n",
      "Epoch 246/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0186e-04 - val_loss: 3.0981e-04\n",
      "Epoch 247/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5403e-04 - val_loss: 2.3025e-04\n",
      "Epoch 248/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 9.1848e-04 - val_loss: 5.4020e-04\n",
      "Epoch 249/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 0.0011 - val_loss: 6.5032e-04\n",
      "Epoch 250/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.7423e-04 - val_loss: 2.7792e-04\n",
      "Epoch 251/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0261e-04 - val_loss: 3.0681e-04\n",
      "Epoch 252/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0639e-04 - val_loss: 4.1150e-04\n",
      "Epoch 253/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.6838e-04 - val_loss: 2.3092e-04\n",
      "Epoch 254/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.1383e-04 - val_loss: 2.4791e-04\n",
      "Epoch 255/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6667e-04 - val_loss: 2.3776e-04\n",
      "Epoch 256/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.1375e-04 - val_loss: 2.2190e-04\n",
      "Epoch 257/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4745e-04 - val_loss: 2.1398e-04\n",
      "Epoch 258/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4885e-04 - val_loss: 2.5213e-04\n",
      "Epoch 259/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.8571e-04 - val_loss: 2.4890e-04\n",
      "Epoch 260/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6360e-04 - val_loss: 2.7722e-04\n",
      "Epoch 261/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3733e-04 - val_loss: 3.4182e-04\n",
      "Epoch 262/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.8086e-04 - val_loss: 4.1907e-04\n",
      "Epoch 263/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6782e-04 - val_loss: 2.3037e-04\n",
      "Epoch 264/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4688e-04 - val_loss: 2.9709e-04\n",
      "Epoch 265/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4937e-04 - val_loss: 2.3876e-04\n",
      "Epoch 266/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7078e-04 - val_loss: 2.2558e-04\n",
      "Epoch 267/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.7573e-04 - val_loss: 4.9432e-04\n",
      "Epoch 268/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8321e-04 - val_loss: 2.0661e-04\n",
      "Epoch 269/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.0731e-04 - val_loss: 2.0068e-04\n",
      "Epoch 270/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 8.2480e-04 - val_loss: 2.1069e-04\n",
      "Epoch 271/400\n",
      "20/20 [==============================] - 0s 17ms/step - loss: 7.6611e-04 - val_loss: 2.8649e-04\n",
      "Epoch 272/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3499e-04 - val_loss: 2.0761e-04\n",
      "Epoch 273/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.4862e-04 - val_loss: 2.8844e-04\n",
      "Epoch 274/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0966e-04 - val_loss: 4.8031e-04\n",
      "Epoch 275/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5099e-04 - val_loss: 3.4076e-04\n",
      "Epoch 276/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4527e-04 - val_loss: 6.3615e-04\n",
      "Epoch 277/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7571e-04 - val_loss: 2.2359e-04\n",
      "Epoch 278/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0407e-04 - val_loss: 5.3823e-04\n",
      "Epoch 279/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.1054e-04 - val_loss: 2.8955e-04\n",
      "Epoch 280/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0000e-04 - val_loss: 4.8239e-04\n",
      "Epoch 281/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.3136e-04 - val_loss: 2.0554e-04\n",
      "Epoch 282/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.1264e-04 - val_loss: 3.0502e-04\n",
      "Epoch 283/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.6702e-04 - val_loss: 2.2045e-04\n",
      "Epoch 284/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5114e-04 - val_loss: 2.2926e-04\n",
      "Epoch 285/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.5932e-04 - val_loss: 5.3997e-04\n",
      "Epoch 286/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7331e-04 - val_loss: 2.4145e-04\n",
      "Epoch 287/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4721e-04 - val_loss: 7.1043e-04\n",
      "Epoch 288/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3639e-04 - val_loss: 2.7014e-04\n",
      "Epoch 289/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.8045e-04 - val_loss: 3.3654e-04\n",
      "Epoch 290/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.2431e-04 - val_loss: 7.6638e-04\n",
      "Epoch 291/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.5847e-04 - val_loss: 2.2280e-04\n",
      "Epoch 292/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 7.8578e-04 - val_loss: 1.9852e-04\n",
      "Epoch 293/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7880e-04 - val_loss: 1.9626e-04\n",
      "Epoch 294/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5135e-04 - val_loss: 7.0693e-04\n",
      "Epoch 295/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.8816e-04 - val_loss: 4.4209e-04\n",
      "Epoch 296/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7304e-04 - val_loss: 2.5715e-04\n",
      "Epoch 297/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2347e-04 - val_loss: 2.2159e-04\n",
      "Epoch 298/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.9916e-04 - val_loss: 1.9179e-04\n",
      "Epoch 299/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0427e-04 - val_loss: 4.2464e-04\n",
      "Epoch 300/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.1402e-04 - val_loss: 4.1774e-04\n",
      "Epoch 301/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6360e-04 - val_loss: 2.1080e-04\n",
      "Epoch 302/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7316e-04 - val_loss: 2.3888e-04\n",
      "Epoch 303/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4803e-04 - val_loss: 4.8522e-04\n",
      "Epoch 304/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3249e-04 - val_loss: 2.9825e-04\n",
      "Epoch 305/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7056e-04 - val_loss: 3.6823e-04\n",
      "Epoch 306/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7339e-04 - val_loss: 2.1571e-04\n",
      "Epoch 307/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.9011e-04 - val_loss: 1.9282e-04\n",
      "Epoch 308/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5841e-04 - val_loss: 1.9321e-04\n",
      "Epoch 309/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7177e-04 - val_loss: 3.6198e-04\n",
      "Epoch 310/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4596e-04 - val_loss: 1.9196e-04\n",
      "Epoch 311/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0397e-04 - val_loss: 0.0011\n",
      "Epoch 312/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2178e-04 - val_loss: 3.7980e-04\n",
      "Epoch 313/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5143e-04 - val_loss: 6.4749e-04\n",
      "Epoch 314/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.9200e-04 - val_loss: 2.2347e-04\n",
      "Epoch 315/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0089e-04 - val_loss: 8.7843e-04\n",
      "Epoch 316/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0565e-04 - val_loss: 1.8762e-04\n",
      "Epoch 317/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6071e-04 - val_loss: 2.4499e-04\n",
      "Epoch 318/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.1108e-04 - val_loss: 2.7321e-04\n",
      "Epoch 319/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5391e-04 - val_loss: 3.1257e-04\n",
      "Epoch 320/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.3846e-04 - val_loss: 3.1628e-04\n",
      "Epoch 321/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6507e-04 - val_loss: 2.1061e-04\n",
      "Epoch 322/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5160e-04 - val_loss: 1.8298e-04\n",
      "Epoch 323/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4129e-04 - val_loss: 4.0358e-04\n",
      "Epoch 324/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7093e-04 - val_loss: 4.3137e-04\n",
      "Epoch 325/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7030e-04 - val_loss: 2.7500e-04\n",
      "Epoch 326/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2005e-04 - val_loss: 1.8993e-04\n",
      "Epoch 327/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2153e-04 - val_loss: 2.0946e-04\n",
      "Epoch 328/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4925e-04 - val_loss: 2.0159e-04\n",
      "Epoch 329/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3211e-04 - val_loss: 2.1956e-04\n",
      "Epoch 330/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0869e-04 - val_loss: 5.7020e-04\n",
      "Epoch 331/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3704e-04 - val_loss: 2.3664e-04\n",
      "Epoch 332/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3116e-04 - val_loss: 1.9681e-04\n",
      "Epoch 333/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4225e-04 - val_loss: 1.8420e-04\n",
      "Epoch 334/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4596e-04 - val_loss: 3.4948e-04\n",
      "Epoch 335/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.1815e-04 - val_loss: 2.0183e-04\n",
      "Epoch 336/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2603e-04 - val_loss: 2.1923e-04\n",
      "Epoch 337/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.8203e-04 - val_loss: 1.8611e-04\n",
      "Epoch 338/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3145e-04 - val_loss: 1.9005e-04\n",
      "Epoch 339/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.7541e-04 - val_loss: 2.0938e-04\n",
      "Epoch 340/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2479e-04 - val_loss: 2.6251e-04\n",
      "Epoch 341/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4786e-04 - val_loss: 2.9848e-04\n",
      "Epoch 342/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2731e-04 - val_loss: 2.5418e-04\n",
      "Epoch 343/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.1514e-04 - val_loss: 1.7671e-04\n",
      "Epoch 344/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2345e-04 - val_loss: 4.7410e-04\n",
      "Epoch 345/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2774e-04 - val_loss: 1.9923e-04\n",
      "Epoch 346/400\n",
      "20/20 [==============================] - 0s 14ms/step - loss: 6.9661e-04 - val_loss: 2.6634e-04\n",
      "Epoch 347/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.7870e-04 - val_loss: 2.2113e-04\n",
      "Epoch 348/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5309e-04 - val_loss: 1.8297e-04\n",
      "Epoch 349/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.9823e-04 - val_loss: 2.8830e-04\n",
      "Epoch 350/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2091e-04 - val_loss: 2.0491e-04\n",
      "Epoch 351/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.5693e-04 - val_loss: 1.7636e-04\n",
      "Epoch 352/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0294e-04 - val_loss: 2.8584e-04\n",
      "Epoch 353/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0143e-04 - val_loss: 1.7060e-04\n",
      "Epoch 354/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.1654e-04 - val_loss: 2.1178e-04\n",
      "Epoch 355/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.8545e-04 - val_loss: 1.7025e-04\n",
      "Epoch 356/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5392e-04 - val_loss: 5.7988e-04\n",
      "Epoch 357/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2335e-04 - val_loss: 2.2329e-04\n",
      "Epoch 358/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4360e-04 - val_loss: 2.5163e-04\n",
      "Epoch 359/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3929e-04 - val_loss: 5.2991e-04\n",
      "Epoch 360/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7316e-04 - val_loss: 2.1795e-04\n",
      "Epoch 361/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5343e-04 - val_loss: 3.7524e-04\n",
      "Epoch 362/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.4600e-04 - val_loss: 2.4836e-04\n",
      "Epoch 363/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.1949e-04 - val_loss: 4.0458e-04\n",
      "Epoch 364/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.9690e-04 - val_loss: 1.8022e-04\n",
      "Epoch 365/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.8858e-04 - val_loss: 2.5321e-04\n",
      "Epoch 366/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.7158e-04 - val_loss: 2.1211e-04\n",
      "Epoch 367/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2468e-04 - val_loss: 1.7384e-04\n",
      "Epoch 368/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2990e-04 - val_loss: 2.0418e-04\n",
      "Epoch 369/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0874e-04 - val_loss: 2.3987e-04\n",
      "Epoch 370/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.9300e-04 - val_loss: 1.8557e-04\n",
      "Epoch 371/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.2014e-04 - val_loss: 2.3507e-04\n",
      "Epoch 372/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.6560e-04 - val_loss: 1.9659e-04\n",
      "Epoch 373/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 6.6394e-04 - val_loss: 2.0406e-04\n",
      "Epoch 374/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5230e-04 - val_loss: 2.1841e-04\n",
      "Epoch 375/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3499e-04 - val_loss: 2.3190e-04\n",
      "Epoch 376/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.5748e-04 - val_loss: 1.8664e-04\n",
      "Epoch 377/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.6275e-04 - val_loss: 3.5272e-04\n",
      "Epoch 378/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0760e-04 - val_loss: 3.4090e-04\n",
      "Epoch 379/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0024e-04 - val_loss: 1.8721e-04\n",
      "Epoch 380/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 0s 13ms/step - loss: 7.7598e-04 - val_loss: 3.0394e-04\n",
      "Epoch 381/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.2739e-04 - val_loss: 1.9550e-04\n",
      "Epoch 382/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 8.0107e-04 - val_loss: 3.9818e-04\n",
      "Epoch 383/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.0961e-04 - val_loss: 1.9048e-04\n",
      "Epoch 384/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3357e-04 - val_loss: 1.7748e-04\n",
      "Epoch 385/400\n",
      "20/20 [==============================] - 0s 13ms/step - loss: 7.3798e-04 - val_loss: 2.2273e-04\n",
      "Epoch 00385: early stopping\n"
     ]
    }
   ],
   "source": [
    "history=regressorGRU.fit(x_train, y_train, epochs=400, batch_size=128,validation_data=(x_val, y_val), callbacks=[mc, earlystop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "#保存模型的方法\n",
    "# # serialize model to JSON\n",
    "# model_json = regressorGRU.to_json()\n",
    "# with open(\"model.json\", \"w\") as json_file:\n",
    "#     json_file.write(model_json)\n",
    "# # serialize weights to HDF5\n",
    "# regressorGRU.save_weights(\"model.h5\")\n",
    "# print(\"Saved model to disk\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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DWDSpElccMEFjB49ml69enH77bdvW15eXt628qNHj+b000+nb9++fP/738ejA87p06fTt29fRo4cyY9//GPOOKPup+5++eWXnHLKKRxyyCEMGzaMd955B4BXXnllW41p4MCBFBUVsXr1akaNGsWAAQM46KCDePXVV3f7NkuWahygGofI7nDVVRAd/e82AwbArbcmPdsHH3zAiy++SCwWY9OmTcyaNYvMzExefPFFrr/+ep588smvzfP+++8zc+ZMioqK6NOnD5deeunXrnlYsGABixcvZu+992bEiBG8/vrrDBkyhIsvvphZs2bRs2dPJkyYUG98N9xwAwMHDuTpp5/m5Zdf5pxzzmHhwoXcfPPN3HHHHYwYMYLi4mJycnKYMmUKxx13HL/85S+prKykpKQk6e2xuylxgBKHyDfMGWecQSwWA2Djxo2ce+65fPjhh5gZ5eXltc5z4oknkp2dTXZ2Nh07duTzzz+na9euO5QZOnTotnEDBgxg5cqV5OXl0atXr23XR0yYMIE777yzzvhee+21bclrzJgxrF+/no0bNzJixAiuvvpqvv/973PqqafStWtXDj30UC644ALKy8s55ZRTGDBgQEM2zW6R0sRhZmOB24AYcI+7/6HGdIumnwCUAOe5+/xoWhvgHuAgwIEL3P3NVMSppiqR3WAXagapEn9L81//+tcceeSRPPXUU6xcuZLRo0fXOk92dva297FYjIqKioTK+C4cdNY2j5lx3XXXceKJJzJ9+nSGDRvGiy++yKhRo5g1axbPPfccZ599Nj//+c8555xzkl7n7pSyPg4ziwF3AMcD/YAJZtavRrHjgd7RayJwV9y024Dn3b0v0B9I3fX7qnGIfGNt3LiR/Px8AO6///7dvvy+ffuyYsUKVq5cCcDf/va3eucZNWoUjzzyCBD6Ttq3b0+rVq1Yvnw5Bx98MNdeey1Dhgzh/fff5+OPP6Zjx45cdNFFXHjhhcyfP3+3f4ZkpbLGMRRY5u4rAMxsKjAOeC+uzDjgweie8P82szZm1gXYDIwCzgNw9zKg7nPrGkKJQ+Qb65prruHcc8/llltuYcyYMbt9+bm5udx5552MHTuW9u3bM3To0J02h1WbNGkS559/PocccgjNmzfngQceAODWW29l5syZxGIx+vXrx/HHH8/UqVP505/+RFZWFnl5eTz44IO7/TMk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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画损失曲线图\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(loss) + 1)\n",
    "plt.title('GRU Loss curve')\n",
    "plt.plot(epochs, loss, 'red', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'blue', label='Validation loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "sc_one = MinMaxScaler(feature_range = (0, 1))\n",
    "sc_one.fit_transform(all_data.iloc[:, 1:2])\n",
    "predicted_stock_train = regressorGRU.predict(x_train)\n",
    "predicted_stock_train = sc_one.inverse_transform(predicted_stock_train)\n",
    "predicted_stock_test = regressorGRU.predict(x_test)\n",
    "predicted_stock_test = sc_one.inverse_transform(predicted_stock_test)\n",
    "real_price_train=sc_one.inverse_transform(np.reshape(y_train,(-1,1)))\n",
    "real_price_test=sc_one.inverse_transform(np.reshape(y_test,(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_train, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('GRU train Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_test, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_test, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('GRU test Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "GRU模型的均方误差是: 0.030858\n",
      "GRU模型的均方根误差是: 0.175665\n",
      "GRU模型的平均绝对误差是: 0.115244\n",
      "GRU模型的R-squared是: 0.928462\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
    "import math\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_test, real_price_test)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt( mean_squared_error(predicted_stock_test, real_price_test))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_test, real_price_test)\n",
    "\n",
    "r2=r2_score(predicted_stock_test, real_price_test)\n",
    "\n",
    "print('GRU模型的均方误差是: %.6f' % mse)\n",
    "print('GRU模型的均方根误差是: %.6f' % rmse)\n",
    "print('GRU模型的平均绝对误差是: %.6f' % mae)\n",
    "print('GRU模型的R-squared是: %.6f' % r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "# BiLSTM\n",
    "regressorBiLSTM = Sequential()\n",
    "# firt LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50, return_sequences=True), input_shape=(x_train.shape[1],5), merge_mode='concat'))\n",
    "# second LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50, return_sequences=True)))\n",
    "regressorBiLSTM.add(Dropout(0.1))\n",
    "# third LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50, return_sequences=True)))\n",
    "# fourth LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50)))\n",
    "# output layer\n",
    "regressorBiLSTM.add(Dense(units=1))\n",
    "# compile the RNN\n",
    "regressorBiLSTM.compile(optimizer='adam', loss='mean_squared_error') #optimizer选择不同的算法优化器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_2\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "bidirectional (Bidirectional (None, 60, 100)           22400     \n",
      "_________________________________________________________________\n",
      "bidirectional_1 (Bidirection (None, 60, 100)           60400     \n",
      "_________________________________________________________________\n",
      "dropout_8 (Dropout)          (None, 60, 100)           0         \n",
      "_________________________________________________________________\n",
      "bidirectional_2 (Bidirection (None, 60, 100)           60400     \n",
      "_________________________________________________________________\n",
      "bidirectional_3 (Bidirection (None, 100)               60400     \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 101       \n",
      "=================================================================\n",
      "Total params: 203,701\n",
      "Trainable params: 203,701\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(regressorBiLSTM.summary()) # Summarize Model 模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n",
      "\n",
      "               Input   #####     60    5\n",
      "       Bidirectional   ????? -------------------     22400    11.0%\n",
      "                       #####     60  100\n",
      "       Bidirectional   ????? -------------------     60400    29.7%\n",
      "                       #####     60  100\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60  100\n",
      "       Bidirectional   ????? -------------------     60400    29.7%\n",
      "                       #####     60  100\n",
      "       Bidirectional   ????? -------------------     60400    29.7%\n",
      "                       #####         100\n",
      "               Dense   XXXXX -------------------       101     0.0%\n",
      "                       #####           1\n"
     ]
    }
   ],
   "source": [
    "from keras_sequential_ascii import keras2ascii\n",
    "keras2ascii(regressorBiLSTM)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "#from keras.utils import plot_model \n",
    "#plot_model(regressorBiLSTM, to_file='model.png', show_shapes=True, show_layer_names=True) # plot my model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/400\n",
      "20/20 [==============================] - 3s 151ms/step - loss: 0.0403 - val_loss: 0.0137\n",
      "Epoch 2/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0045 - val_loss: 0.0019\n",
      "Epoch 3/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0025 - val_loss: 0.0013\n",
      "Epoch 4/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0018 - val_loss: 9.6957e-04\n",
      "Epoch 5/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0014 - val_loss: 8.1445e-04\n",
      "Epoch 6/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 0.0013 - val_loss: 0.0012\n",
      "Epoch 7/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 0.0012 - val_loss: 7.6689e-04\n",
      "Epoch 8/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0011 - val_loss: 8.3179e-04\n",
      "Epoch 9/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 0.0011 - val_loss: 7.3471e-04\n",
      "Epoch 10/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0012 - val_loss: 0.0020\n",
      "Epoch 11/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0012 - val_loss: 7.1464e-04\n",
      "Epoch 12/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0010 - val_loss: 6.6065e-04\n",
      "Epoch 13/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 9.5447e-04 - val_loss: 7.3412e-04\n",
      "Epoch 14/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 9.1925e-04 - val_loss: 6.3337e-04\n",
      "Epoch 15/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 8.4210e-04 - val_loss: 7.5435e-04\n",
      "Epoch 16/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 8.3233e-04 - val_loss: 8.1957e-04\n",
      "Epoch 17/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 0.0010 - val_loss: 9.2918e-04\n",
      "Epoch 18/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 9.3206e-04 - val_loss: 9.3901e-04\n",
      "Epoch 19/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 8.4593e-04 - val_loss: 6.7010e-04\n",
      "Epoch 20/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 7.7407e-04 - val_loss: 5.5697e-04\n",
      "Epoch 21/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 0.0010 - val_loss: 5.3517e-04\n",
      "Epoch 22/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 0.0010 - val_loss: 6.7880e-04\n",
      "Epoch 23/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 7.5844e-04 - val_loss: 5.3153e-04\n",
      "Epoch 24/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 7.3173e-04 - val_loss: 6.8673e-04\n",
      "Epoch 25/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 7.2257e-04 - val_loss: 6.9282e-04\n",
      "Epoch 26/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 7.7729e-04 - val_loss: 0.0013\n",
      "Epoch 27/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 8.5519e-04 - val_loss: 0.0012\n",
      "Epoch 28/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 8.0273e-04 - val_loss: 5.0114e-04\n",
      "Epoch 29/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.8557e-04 - val_loss: 8.6561e-04\n",
      "Epoch 30/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 8.7535e-04 - val_loss: 0.0017\n",
      "Epoch 31/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 8.4605e-04 - val_loss: 0.0014\n",
      "Epoch 32/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.9643e-04 - val_loss: 5.0026e-04\n",
      "Epoch 33/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.4467e-04 - val_loss: 4.8458e-04\n",
      "Epoch 34/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 7.0334e-04 - val_loss: 6.3019e-04\n",
      "Epoch 35/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 7.3748e-04 - val_loss: 7.0498e-04\n",
      "Epoch 36/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.5027e-04 - val_loss: 5.0974e-04\n",
      "Epoch 37/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.3854e-04 - val_loss: 4.5903e-04\n",
      "Epoch 38/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.9694e-04 - val_loss: 5.5860e-04\n",
      "Epoch 39/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.7276e-04 - val_loss: 4.2640e-04\n",
      "Epoch 40/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.2460e-04 - val_loss: 4.6507e-04\n",
      "Epoch 41/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.7620e-04 - val_loss: 4.2033e-04\n",
      "Epoch 42/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.1012e-04 - val_loss: 4.4385e-04\n",
      "Epoch 43/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.4304e-04 - val_loss: 6.8564e-04\n",
      "Epoch 44/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 7.3624e-04 - val_loss: 9.3008e-04\n",
      "Epoch 45/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.4502e-04 - val_loss: 4.0680e-04\n",
      "Epoch 46/400\n",
      "20/20 [==============================] - 1s 30ms/step - loss: 5.7118e-04 - val_loss: 5.1212e-04\n",
      "Epoch 47/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.0932e-04 - val_loss: 4.6631e-04\n",
      "Epoch 48/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.5370e-04 - val_loss: 3.8535e-04\n",
      "Epoch 49/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.8440e-04 - val_loss: 4.0401e-04\n",
      "Epoch 50/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.9984e-04 - val_loss: 4.1970e-04\n",
      "Epoch 51/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 6.5031e-04 - val_loss: 4.4626e-04\n",
      "Epoch 52/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.6820e-04 - val_loss: 3.8088e-04\n",
      "Epoch 53/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.3470e-04 - val_loss: 3.9106e-04\n",
      "Epoch 54/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.1278e-04 - val_loss: 7.8096e-04\n",
      "Epoch 55/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.4648e-04 - val_loss: 8.4244e-04\n",
      "Epoch 56/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 7.4227e-04 - val_loss: 0.0010\n",
      "Epoch 57/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.8996e-04 - val_loss: 3.6733e-04\n",
      "Epoch 58/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.2653e-04 - val_loss: 4.7972e-04\n",
      "Epoch 59/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.3402e-04 - val_loss: 3.7893e-04\n",
      "Epoch 60/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.0850e-04 - val_loss: 4.2713e-04\n",
      "Epoch 61/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.0147e-04 - val_loss: 3.8428e-04\n",
      "Epoch 62/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.2190e-04 - val_loss: 4.5994e-04\n",
      "Epoch 63/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.1517e-04 - val_loss: 4.2336e-04\n",
      "Epoch 64/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.0185e-04 - val_loss: 3.4109e-04\n",
      "Epoch 65/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.7396e-04 - val_loss: 0.0015\n",
      "Epoch 66/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 7.2224e-04 - val_loss: 3.2892e-04\n",
      "Epoch 67/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.1995e-04 - val_loss: 3.4555e-04\n",
      "Epoch 68/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.9469e-04 - val_loss: 6.2253e-04\n",
      "Epoch 69/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.9666e-04 - val_loss: 3.1777e-04\n",
      "Epoch 70/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.7198e-04 - val_loss: 3.1544e-04\n",
      "Epoch 71/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.3983e-04 - val_loss: 4.0731e-04\n",
      "Epoch 72/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.6795e-04 - val_loss: 3.0843e-04\n",
      "Epoch 73/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.4606e-04 - val_loss: 3.8986e-04\n",
      "Epoch 74/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.6426e-04 - val_loss: 3.0670e-04\n",
      "Epoch 75/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.6670e-04 - val_loss: 3.4058e-04\n",
      "Epoch 76/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.6210e-04 - val_loss: 3.1002e-04\n",
      "Epoch 77/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 1s 26ms/step - loss: 5.0125e-04 - val_loss: 2.9400e-04\n",
      "Epoch 78/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.5765e-04 - val_loss: 7.2127e-04\n",
      "Epoch 79/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.8984e-04 - val_loss: 2.8862e-04\n",
      "Epoch 80/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.9011e-04 - val_loss: 4.2530e-04\n",
      "Epoch 81/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.1772e-04 - val_loss: 4.0773e-04\n",
      "Epoch 82/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.5517e-04 - val_loss: 4.0473e-04\n",
      "Epoch 83/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 5.7694e-04 - val_loss: 2.9842e-04\n",
      "Epoch 84/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 6.0498e-04 - val_loss: 2.9518e-04\n",
      "Epoch 85/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.3765e-04 - val_loss: 2.8440e-04\n",
      "Epoch 86/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.2485e-04 - val_loss: 2.9829e-04\n",
      "Epoch 87/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.1454e-04 - val_loss: 4.9128e-04\n",
      "Epoch 88/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.4975e-04 - val_loss: 2.8495e-04\n",
      "Epoch 89/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.1581e-04 - val_loss: 5.0800e-04\n",
      "Epoch 90/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.5019e-04 - val_loss: 3.7020e-04\n",
      "Epoch 91/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.6038e-04 - val_loss: 2.9826e-04\n",
      "Epoch 92/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.2290e-04 - val_loss: 3.7909e-04\n",
      "Epoch 93/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.9470e-04 - val_loss: 5.9428e-04\n",
      "Epoch 94/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.1808e-04 - val_loss: 7.2120e-04\n",
      "Epoch 95/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.8510e-04 - val_loss: 3.6214e-04\n",
      "Epoch 96/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.3145e-04 - val_loss: 7.6380e-04\n",
      "Epoch 97/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.5244e-04 - val_loss: 2.7720e-04\n",
      "Epoch 98/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 5.8882e-04 - val_loss: 4.5438e-04\n",
      "Epoch 99/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.0563e-04 - val_loss: 2.7261e-04\n",
      "Epoch 100/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.0610e-04 - val_loss: 2.8725e-04\n",
      "Epoch 101/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.1863e-04 - val_loss: 2.7476e-04\n",
      "Epoch 102/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.9408e-04 - val_loss: 6.7607e-04\n",
      "Epoch 103/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.4429e-04 - val_loss: 7.5024e-04\n",
      "Epoch 104/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.3848e-04 - val_loss: 3.1741e-04\n",
      "Epoch 105/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.9866e-04 - val_loss: 2.6369e-04\n",
      "Epoch 106/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.9532e-04 - val_loss: 2.6649e-04\n",
      "Epoch 107/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.0035e-04 - val_loss: 2.9472e-04\n",
      "Epoch 108/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.6872e-04 - val_loss: 2.6000e-04\n",
      "Epoch 109/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.9896e-04 - val_loss: 3.2525e-04\n",
      "Epoch 110/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.7510e-04 - val_loss: 3.4638e-04\n",
      "Epoch 111/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.6985e-04 - val_loss: 2.4305e-04\n",
      "Epoch 112/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7369e-04 - val_loss: 3.4744e-04\n",
      "Epoch 113/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.3662e-04 - val_loss: 8.1477e-04\n",
      "Epoch 114/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.8408e-04 - val_loss: 9.5120e-04\n",
      "Epoch 115/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.3382e-04 - val_loss: 2.8331e-04\n",
      "Epoch 116/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.6335e-04 - val_loss: 2.7574e-04\n",
      "Epoch 117/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.5607e-04 - val_loss: 2.4435e-04\n",
      "Epoch 118/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7185e-04 - val_loss: 5.3854e-04\n",
      "Epoch 119/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.4055e-04 - val_loss: 5.1978e-04\n",
      "Epoch 120/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.9566e-04 - val_loss: 2.4553e-04\n",
      "Epoch 121/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.5212e-04 - val_loss: 3.2395e-04\n",
      "Epoch 122/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.6256e-04 - val_loss: 3.3880e-04\n",
      "Epoch 123/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.7643e-04 - val_loss: 4.0106e-04\n",
      "Epoch 124/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7233e-04 - val_loss: 8.8888e-04\n",
      "Epoch 125/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.1622e-04 - val_loss: 2.4180e-04\n",
      "Epoch 126/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.4207e-04 - val_loss: 3.2326e-04\n",
      "Epoch 127/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.1536e-04 - val_loss: 8.4858e-04\n",
      "Epoch 128/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.7041e-04 - val_loss: 3.0514e-04\n",
      "Epoch 129/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.6268e-04 - val_loss: 2.4950e-04\n",
      "Epoch 130/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.5085e-04 - val_loss: 2.4760e-04\n",
      "Epoch 131/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.5225e-04 - val_loss: 4.5249e-04\n",
      "Epoch 132/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.7413e-04 - val_loss: 3.9329e-04\n",
      "Epoch 133/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.3574e-04 - val_loss: 2.4423e-04\n",
      "Epoch 134/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.3515e-04 - val_loss: 4.4529e-04\n",
      "Epoch 135/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.7548e-04 - val_loss: 2.7123e-04\n",
      "Epoch 136/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.3959e-04 - val_loss: 2.3016e-04\n",
      "Epoch 137/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2799e-04 - val_loss: 2.4532e-04\n",
      "Epoch 138/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.3185e-04 - val_loss: 5.6087e-04\n",
      "Epoch 139/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.7575e-04 - val_loss: 2.5107e-04\n",
      "Epoch 140/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.5720e-04 - val_loss: 8.7006e-04\n",
      "Epoch 141/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7823e-04 - val_loss: 8.4706e-04\n",
      "Epoch 142/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.5553e-04 - val_loss: 2.8557e-04\n",
      "Epoch 143/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.1916e-04 - val_loss: 4.0680e-04\n",
      "Epoch 144/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.5441e-04 - val_loss: 2.3729e-04\n",
      "Epoch 145/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7215e-04 - val_loss: 2.1799e-04\n",
      "Epoch 146/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.3926e-04 - val_loss: 2.3673e-04\n",
      "Epoch 147/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.4222e-04 - val_loss: 4.4050e-04\n",
      "Epoch 148/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.9243e-04 - val_loss: 5.6093e-04\n",
      "Epoch 149/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.4824e-04 - val_loss: 2.4125e-04\n",
      "Epoch 150/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.3589e-04 - val_loss: 2.9288e-04\n",
      "Epoch 151/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7270e-04 - val_loss: 3.2566e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 152/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.6685e-04 - val_loss: 2.2029e-04\n",
      "Epoch 153/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2730e-04 - val_loss: 2.3481e-04\n",
      "Epoch 154/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.1658e-04 - val_loss: 2.2207e-04\n",
      "Epoch 155/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.1835e-04 - val_loss: 5.0455e-04\n",
      "Epoch 156/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.7032e-04 - val_loss: 2.6302e-04\n",
      "Epoch 157/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.3931e-04 - val_loss: 3.0407e-04\n",
      "Epoch 158/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.2821e-04 - val_loss: 2.1343e-04\n",
      "Epoch 159/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.7959e-04 - val_loss: 5.2729e-04\n",
      "Epoch 160/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2993e-04 - val_loss: 3.6841e-04\n",
      "Epoch 161/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2447e-04 - val_loss: 2.1506e-04\n",
      "Epoch 162/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.9844e-04 - val_loss: 3.5177e-04\n",
      "Epoch 163/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.0304e-04 - val_loss: 2.2764e-04\n",
      "Epoch 164/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.1314e-04 - val_loss: 5.3784e-04\n",
      "Epoch 165/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.2612e-04 - val_loss: 3.7863e-04\n",
      "Epoch 166/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.4506e-04 - val_loss: 2.0824e-04\n",
      "Epoch 167/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.0913e-04 - val_loss: 2.6093e-04\n",
      "Epoch 168/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8646e-04 - val_loss: 2.3054e-04\n",
      "Epoch 169/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2828e-04 - val_loss: 2.0961e-04\n",
      "Epoch 170/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.1246e-04 - val_loss: 2.6534e-04\n",
      "Epoch 171/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.0146e-04 - val_loss: 3.9763e-04\n",
      "Epoch 172/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.2843e-04 - val_loss: 4.9147e-04\n",
      "Epoch 173/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.2221e-04 - val_loss: 2.2423e-04\n",
      "Epoch 174/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.2716e-04 - val_loss: 3.9490e-04\n",
      "Epoch 175/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.0906e-04 - val_loss: 3.5668e-04\n",
      "Epoch 176/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9389e-04 - val_loss: 2.6788e-04\n",
      "Epoch 177/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9991e-04 - val_loss: 2.1855e-04\n",
      "Epoch 178/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.6463e-04 - val_loss: 3.4254e-04\n",
      "Epoch 179/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0104e-04 - val_loss: 2.1973e-04\n",
      "Epoch 180/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2169e-04 - val_loss: 5.5276e-04\n",
      "Epoch 181/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0773e-04 - val_loss: 4.6155e-04\n",
      "Epoch 182/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 4.0008e-04 - val_loss: 6.1575e-04\n",
      "Epoch 183/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 4.1420e-04 - val_loss: 2.8188e-04\n",
      "Epoch 184/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.5179e-04 - val_loss: 2.0894e-04\n",
      "Epoch 185/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.1933e-04 - val_loss: 2.6095e-04\n",
      "Epoch 186/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2331e-04 - val_loss: 2.1910e-04\n",
      "Epoch 187/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.4941e-04 - val_loss: 3.6626e-04\n",
      "Epoch 188/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.8063e-04 - val_loss: 2.3115e-04\n",
      "Epoch 189/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7588e-04 - val_loss: 3.2657e-04\n",
      "Epoch 190/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8653e-04 - val_loss: 3.2237e-04\n",
      "Epoch 191/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.1235e-04 - val_loss: 2.0519e-04\n",
      "Epoch 192/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9863e-04 - val_loss: 2.0146e-04\n",
      "Epoch 193/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.5278e-04 - val_loss: 3.1742e-04\n",
      "Epoch 194/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0219e-04 - val_loss: 2.1197e-04\n",
      "Epoch 195/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2611e-04 - val_loss: 2.4493e-04\n",
      "Epoch 196/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.8702e-04 - val_loss: 8.3292e-04\n",
      "Epoch 197/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.4786e-04 - val_loss: 2.9988e-04\n",
      "Epoch 198/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9629e-04 - val_loss: 3.9575e-04\n",
      "Epoch 199/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7530e-04 - val_loss: 3.3669e-04\n",
      "Epoch 200/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8763e-04 - val_loss: 2.2925e-04\n",
      "Epoch 201/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8142e-04 - val_loss: 2.5893e-04\n",
      "Epoch 202/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2507e-04 - val_loss: 2.2419e-04\n",
      "Epoch 203/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.6786e-04 - val_loss: 2.3816e-04\n",
      "Epoch 204/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7958e-04 - val_loss: 1.9908e-04\n",
      "Epoch 205/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7321e-04 - val_loss: 2.1714e-04\n",
      "Epoch 206/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7717e-04 - val_loss: 2.7148e-04\n",
      "Epoch 207/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6991e-04 - val_loss: 2.1242e-04\n",
      "Epoch 208/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8268e-04 - val_loss: 3.9297e-04\n",
      "Epoch 209/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9064e-04 - val_loss: 4.0767e-04\n",
      "Epoch 210/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6776e-04 - val_loss: 3.3809e-04\n",
      "Epoch 211/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.9876e-04 - val_loss: 2.0313e-04\n",
      "Epoch 212/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2445e-04 - val_loss: 8.2642e-04\n",
      "Epoch 213/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.5466e-04 - val_loss: 3.3262e-04\n",
      "Epoch 214/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9352e-04 - val_loss: 2.0140e-04\n",
      "Epoch 215/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8354e-04 - val_loss: 2.0670e-04\n",
      "Epoch 216/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6872e-04 - val_loss: 2.2238e-04\n",
      "Epoch 217/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5783e-04 - val_loss: 3.6315e-04\n",
      "Epoch 218/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7185e-04 - val_loss: 3.1274e-04\n",
      "Epoch 219/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8893e-04 - val_loss: 2.0976e-04\n",
      "Epoch 220/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0110e-04 - val_loss: 2.3107e-04\n",
      "Epoch 221/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.4736e-04 - val_loss: 2.1354e-04\n",
      "Epoch 222/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9009e-04 - val_loss: 2.0052e-04\n",
      "Epoch 223/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7009e-04 - val_loss: 2.9837e-04\n",
      "Epoch 224/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0160e-04 - val_loss: 3.6500e-04\n",
      "Epoch 225/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.6212e-04 - val_loss: 3.7351e-04\n",
      "Epoch 226/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7521e-04 - val_loss: 2.2070e-04\n",
      "Epoch 227/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4929e-04 - val_loss: 1.9092e-04\n",
      "Epoch 228/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5767e-04 - val_loss: 1.9243e-04\n",
      "Epoch 229/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5772e-04 - val_loss: 3.3110e-04\n",
      "Epoch 230/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.1380e-04 - val_loss: 1.9333e-04\n",
      "Epoch 231/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.9689e-04 - val_loss: 1.8674e-04\n",
      "Epoch 232/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8723e-04 - val_loss: 9.9211e-04\n",
      "Epoch 233/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2637e-04 - val_loss: 2.5522e-04\n",
      "Epoch 234/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8397e-04 - val_loss: 3.3656e-04\n",
      "Epoch 235/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0378e-04 - val_loss: 2.1306e-04\n",
      "Epoch 236/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6772e-04 - val_loss: 1.8969e-04\n",
      "Epoch 237/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5362e-04 - val_loss: 3.6317e-04\n",
      "Epoch 238/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6095e-04 - val_loss: 2.1071e-04\n",
      "Epoch 239/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7734e-04 - val_loss: 1.8694e-04\n",
      "Epoch 240/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2193e-04 - val_loss: 1.9830e-04\n",
      "Epoch 241/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5536e-04 - val_loss: 2.5104e-04\n",
      "Epoch 242/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5684e-04 - val_loss: 1.9537e-04\n",
      "Epoch 243/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4076e-04 - val_loss: 2.3509e-04\n",
      "Epoch 244/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5684e-04 - val_loss: 3.3429e-04\n",
      "Epoch 245/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7309e-04 - val_loss: 4.1003e-04\n",
      "Epoch 246/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.6099e-04 - val_loss: 3.6393e-04\n",
      "Epoch 247/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.3482e-04 - val_loss: 5.9866e-04\n",
      "Epoch 248/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8476e-04 - val_loss: 2.1405e-04\n",
      "Epoch 249/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8596e-04 - val_loss: 1.9979e-04\n",
      "Epoch 250/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5508e-04 - val_loss: 1.8684e-04\n",
      "Epoch 251/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4879e-04 - val_loss: 2.9829e-04\n",
      "Epoch 252/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5631e-04 - val_loss: 1.9486e-04\n",
      "Epoch 253/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6199e-04 - val_loss: 1.8419e-04\n",
      "Epoch 254/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.3853e-04 - val_loss: 2.7375e-04\n",
      "Epoch 255/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6460e-04 - val_loss: 2.1646e-04\n",
      "Epoch 256/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8519e-04 - val_loss: 3.2773e-04\n",
      "Epoch 257/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.0271e-04 - val_loss: 3.7545e-04\n",
      "Epoch 258/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6296e-04 - val_loss: 1.9180e-04\n",
      "Epoch 259/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4459e-04 - val_loss: 2.3094e-04\n",
      "Epoch 260/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5581e-04 - val_loss: 5.4309e-04\n",
      "Epoch 261/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7531e-04 - val_loss: 1.8427e-04\n",
      "Epoch 262/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4333e-04 - val_loss: 4.5891e-04\n",
      "Epoch 263/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7952e-04 - val_loss: 1.9093e-04\n",
      "Epoch 264/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8045e-04 - val_loss: 4.3678e-04\n",
      "Epoch 265/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2318e-04 - val_loss: 2.2538e-04\n",
      "Epoch 266/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8728e-04 - val_loss: 4.6989e-04\n",
      "Epoch 267/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7329e-04 - val_loss: 1.7798e-04\n",
      "Epoch 268/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4345e-04 - val_loss: 1.9281e-04\n",
      "Epoch 269/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3605e-04 - val_loss: 2.4004e-04\n",
      "Epoch 270/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3847e-04 - val_loss: 1.8799e-04\n",
      "Epoch 271/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.8161e-04 - val_loss: 5.8209e-04\n",
      "Epoch 272/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7352e-04 - val_loss: 2.8383e-04\n",
      "Epoch 273/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4916e-04 - val_loss: 2.2493e-04\n",
      "Epoch 274/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6075e-04 - val_loss: 1.8949e-04\n",
      "Epoch 275/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6916e-04 - val_loss: 3.1699e-04\n",
      "Epoch 276/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6224e-04 - val_loss: 1.8657e-04\n",
      "Epoch 277/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6322e-04 - val_loss: 4.4007e-04\n",
      "Epoch 278/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.9678e-04 - val_loss: 2.6301e-04\n",
      "Epoch 279/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.1562e-04 - val_loss: 2.5952e-04\n",
      "Epoch 280/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7076e-04 - val_loss: 1.9221e-04\n",
      "Epoch 281/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6575e-04 - val_loss: 2.0460e-04\n",
      "Epoch 282/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5226e-04 - val_loss: 5.2769e-04\n",
      "Epoch 283/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6203e-04 - val_loss: 2.3625e-04\n",
      "Epoch 284/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7512e-04 - val_loss: 5.4972e-04\n",
      "Epoch 285/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 3.2322e-04 - val_loss: 6.3707e-04\n",
      "Epoch 286/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7359e-04 - val_loss: 2.1151e-04\n",
      "Epoch 287/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4538e-04 - val_loss: 2.0257e-04\n",
      "Epoch 288/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6039e-04 - val_loss: 2.0137e-04\n",
      "Epoch 289/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7504e-04 - val_loss: 4.3819e-04\n",
      "Epoch 290/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7628e-04 - val_loss: 2.1431e-04\n",
      "Epoch 291/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.3794e-04 - val_loss: 3.8642e-04\n",
      "Epoch 292/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7101e-04 - val_loss: 2.4231e-04\n",
      "Epoch 293/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.3976e-04 - val_loss: 2.7388e-04\n",
      "Epoch 294/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6021e-04 - val_loss: 2.6584e-04\n",
      "Epoch 295/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4933e-04 - val_loss: 1.7568e-04\n",
      "Epoch 296/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5624e-04 - val_loss: 3.7072e-04\n",
      "Epoch 297/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5168e-04 - val_loss: 1.7655e-04\n",
      "Epoch 298/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4116e-04 - val_loss: 2.8106e-04\n",
      "Epoch 299/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5103e-04 - val_loss: 2.6287e-04\n",
      "Epoch 300/400\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5526e-04 - val_loss: 1.8027e-04\n",
      "Epoch 301/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7668e-04 - val_loss: 1.8398e-04\n",
      "Epoch 302/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5169e-04 - val_loss: 2.6550e-04\n",
      "Epoch 303/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4271e-04 - val_loss: 2.3335e-04\n",
      "Epoch 304/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.9285e-04 - val_loss: 3.1870e-04\n",
      "Epoch 305/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6851e-04 - val_loss: 1.9371e-04\n",
      "Epoch 306/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5389e-04 - val_loss: 1.7870e-04\n",
      "Epoch 307/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4167e-04 - val_loss: 2.0059e-04\n",
      "Epoch 308/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8263e-04 - val_loss: 2.1988e-04\n",
      "Epoch 309/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7645e-04 - val_loss: 1.9026e-04\n",
      "Epoch 310/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.3940e-04 - val_loss: 5.0920e-04\n",
      "Epoch 311/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7146e-04 - val_loss: 4.3413e-04\n",
      "Epoch 312/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5319e-04 - val_loss: 2.3955e-04\n",
      "Epoch 313/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3798e-04 - val_loss: 2.9793e-04\n",
      "Epoch 314/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4649e-04 - val_loss: 1.7555e-04\n",
      "Epoch 315/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7452e-04 - val_loss: 3.1587e-04\n",
      "Epoch 316/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7028e-04 - val_loss: 3.4535e-04\n",
      "Epoch 317/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4559e-04 - val_loss: 2.5090e-04\n",
      "Epoch 318/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.2916e-04 - val_loss: 1.7558e-04\n",
      "Epoch 319/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3919e-04 - val_loss: 2.0870e-04\n",
      "Epoch 320/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4065e-04 - val_loss: 2.1484e-04\n",
      "Epoch 321/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.3978e-04 - val_loss: 2.1044e-04\n",
      "Epoch 322/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6387e-04 - val_loss: 1.6964e-04\n",
      "Epoch 323/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.3523e-04 - val_loss: 1.8506e-04\n",
      "Epoch 324/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4724e-04 - val_loss: 3.8149e-04\n",
      "Epoch 325/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4698e-04 - val_loss: 1.9807e-04\n",
      "Epoch 326/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4100e-04 - val_loss: 2.0348e-04\n",
      "Epoch 327/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4827e-04 - val_loss: 3.2871e-04\n",
      "Epoch 328/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.7125e-04 - val_loss: 2.5481e-04\n",
      "Epoch 329/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4163e-04 - val_loss: 2.6176e-04\n",
      "Epoch 330/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3154e-04 - val_loss: 2.1809e-04\n",
      "Epoch 331/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.5004e-04 - val_loss: 1.8187e-04\n",
      "Epoch 332/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5099e-04 - val_loss: 3.9232e-04\n",
      "Epoch 333/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4698e-04 - val_loss: 2.0046e-04\n",
      "Epoch 334/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6311e-04 - val_loss: 1.7941e-04\n",
      "Epoch 335/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.4094e-04 - val_loss: 1.9578e-04\n",
      "Epoch 336/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5960e-04 - val_loss: 2.5004e-04\n",
      "Epoch 337/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5844e-04 - val_loss: 4.7738e-04\n",
      "Epoch 338/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 3.4635e-04 - val_loss: 5.1217e-04\n",
      "Epoch 339/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.9550e-04 - val_loss: 1.7675e-04\n",
      "Epoch 340/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3152e-04 - val_loss: 1.7632e-04\n",
      "Epoch 341/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.2228e-04 - val_loss: 1.8094e-04\n",
      "Epoch 342/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.4569e-04 - val_loss: 1.8713e-04\n",
      "Epoch 343/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5004e-04 - val_loss: 2.9627e-04\n",
      "Epoch 344/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6410e-04 - val_loss: 1.7653e-04\n",
      "Epoch 345/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.2516e-04 - val_loss: 3.1940e-04\n",
      "Epoch 346/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.7914e-04 - val_loss: 1.8868e-04\n",
      "Epoch 347/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.3222e-04 - val_loss: 3.6644e-04\n",
      "Epoch 348/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.8861e-04 - val_loss: 1.7922e-04\n",
      "Epoch 349/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6161e-04 - val_loss: 4.2890e-04\n",
      "Epoch 350/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.5460e-04 - val_loss: 3.0363e-04\n",
      "Epoch 351/400\n",
      "20/20 [==============================] - 1s 26ms/step - loss: 2.6566e-04 - val_loss: 3.4532e-04\n",
      "Epoch 352/400\n",
      "20/20 [==============================] - 1s 27ms/step - loss: 2.6020e-04 - val_loss: 1.7628e-04\n",
      "Epoch 00352: early stopping\n"
     ]
    }
   ],
   "source": [
    "# fit to the training set\n",
    "history=regressorBiLSTM.fit(x_train, y_train, epochs=400, batch_size=128,validation_data=(x_val, y_val),callbacks=[mc, earlystop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画损失曲线图\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(loss) + 1)\n",
    "plt.title('BiLSTM Loss curve')\n",
    "plt.plot(epochs, loss, 'red', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'blue', label='Validation loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "sc_one = MinMaxScaler(feature_range = (0, 1))\n",
    "sc_one.fit_transform(all_data.iloc[:, 1:2])\n",
    "predicted_stock_train = regressorBiLSTM.predict(x_train)\n",
    "predicted_stock_train = sc_one.inverse_transform(predicted_stock_train)\n",
    "predicted_stock_test = regressorBiLSTM.predict(x_test)\n",
    "predicted_stock_test = sc_one.inverse_transform(predicted_stock_test)\n",
    "real_price_train=sc_one.inverse_transform(np.reshape(y_train,(-1,1)))\n",
    "real_price_test=sc_one.inverse_transform(np.reshape(y_test,(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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viAiIoKtW7eyY8cO4uLieO+99zxa/rPPPsuIESPYtm0bu3bt4pVXXgGqrvjLS1JSEtu2baNPnz689NJLDseklFgsFpYsWUJsbKzXZVEofMapU9p3id98uTGZYNw42LzZczJ5GG/2+OcAo0ukLQe6SSl7AHuAJ7xYv08ZMGAAx45p4T/379/P6NGj6d27N4MHD+bff/8F4KeffqJ///707NmTiy++mFPFPzA3nDhxgubNm1v3e/ToAcDjjz/OmjVrSExM5K233sJoNHLLLbfQvXt3evbsyerVqwEwm808/PDDdO/enR49ejBz5kyH8vPz8xk9ejSffPJJqXIMGTKEffv2cejQITp37sy0adPo1asXR48edXh7mDdvHj169CAhIYGbbroJgLS0NK6++mr69u1L3759+eMPTwXWUtQICgo000lNIien7DylkZICP/wA+n+gOuK16ZxSytVCiNYl0pbZ7a4DrvFIZfffD1u3ujwUYTaDwVDxMhMT4X//K1dWs9nMypUrmTJlCgBTp07lww8/pH379vz9999MmzaNVatWMWjQINatW4cQgk8//ZTXXnuNN954w225d999NxMmTODdd9/l4osv5pZbbqFp06a88sorvP766/z8sxZutLiMf/75h3///ZcRI0awd+9eZs+ezcGDB9myZQvBwcGcPXvWWnZOTg4TJ05k0qRJTJo0qdT2/fzzz3Tv3h2AlJQUZs+ezfvvv++QZ+fOnbz44ov88ccf1K9f31rXfffdxwMPPMCgQYM4cuQIo0aNCsg1BgFLeDhceCGsWuVvScpPvXpVO99g4GcuY8iu1dSprP7xMv6cx38rMN/dQSHEVGAqQKNGjUhOTnY4XrduXbKzswEIKywkyF2vQkqKKtHjsBQWUqCX7478/Hx69OjBkSNHSExM5Pzzz+fEiRP8+eefXH311dZ8BQUFZGdnk5KSwpNPPsmpU6coLCykVatWZGdnYzQaKSwstLanmIEDB7Jt2zZWrFjB8uXLSUxM5O+//yYvL4+ioiJr/uTkZO644w6ys7Np1qwZzZs3Z8uWLSxdupRbb72V/Px8AEJCQsjOzkZKyZgxY7jvvvsYN26cU73aZZMMHToUg8FA165deeyxx8jMzKRly5Z07drVeo6UkpycHJYsWcLYsWMJCwsjOzvbWtfy5cvZscNq7SMzM5Pjx497ZZ2B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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_train, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('BiLSTM train Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_test, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_test, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('BiLSTM test Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BiLSTM模型的均方误差是: 0.033015\n",
      "BiLSTM模型的均方根误差是: 0.181701\n",
      "BiLSTM模型的平均绝对误差是: 0.125192\n",
      "BiLSTM模型的R-squared是: 0.928253\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
    "import math\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_test, real_price_test)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt( mean_squared_error(predicted_stock_test, real_price_test))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_test, real_price_test)\n",
    "\n",
    "r2=r2_score(predicted_stock_test, real_price_test)\n",
    "\n",
    "print('BiLSTM模型的均方误差是: %.6f' % mse)\n",
    "print('BiLSTM模型的均方根误差是: %.6f' % rmse)\n",
    "print('BiLSTM模型的平均绝对误差是: %.6f' % mae)\n",
    "print('BiLSTM模型的R-squared是: %.6f' % r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_amazonei_tensorflow2_p36",
   "language": "python",
   "name": "conda_amazonei_tensorflow2_p36"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
